草庐IT

windows - 如何确定某个键是否被按下,只知道它在美式键盘上的位置?

考虑一下,对于Windows视频游戏,我需要确定是否按下了在美式英语键盘布局上生成`和~字符的键(通常位于Escape键下方,左键为1)。这听起来像是一个微不足道的问题,但对我来说却不是。当Windows发送键盘消息时,它会指定虚拟键码和OEM扫描码。我们不能依赖OEM扫描码,因为“值取决于OEM”——我们也不能依赖虚拟键码,因为它取决于当前事件的键盘布局。我们目前的“解决方案”是使用LoadKeyboardLayout和MapVirtualKeyEx找到在美式英语键盘布局上生成`字符的键的OEM扫描码,然后只听那个OEM扫描代码。问题是如果用户没有安装美国英语布局,这将不起作用。在W

你不知道的 Git 技巧:如何实现核心代码保护

大家好,我是shixin。前段时间完成了一个核心代码保护的功能,目标是在关键代码被修改及时同步给其他人,避免没经过review就上线导致问题,提示的效果图如下:在实现的过程中,用到一些平时使用不多的Git技巧,这篇文章来总结一下。如何获取当前提交用户信息这个比较简单,通过gitconfiguser.name即可:04318deMacBook-Pro%gitconfiguser.namezhangshixin复制代码gitconfig保存了很多配置信息,其中常用的有自定义快捷键、用户信息、项目地址、分支信息等:504318deMacBook-Pro%gitconfig-l//快捷键begin>>

c# - 我如何知道我使用的是什么 Windows 主题?

我试图让我的申请力成为一个主题——这很简单,如下所示:http://arbel.net/blog/archive/2006/11/03/Forcing-WPF-to-use-a-specific-Windows-theme.aspx但是,我不知道我现在使用的是什么主题。我正在使用WindowsXP默认主题,不管它是什么。那篇文章说It'simportanttospecifytheversionandthepublickeytoken...我从哪里获得该信息? 最佳答案 要获取主题名称,您可以调用非托管的GetCurrentTheme

c# - KeyDown 事件 - 如何轻松知道按下的键是否为数字?

我目前正在处理DataGridView控件的KeyDown事件。其中一列由计算值填充,我希望用户能够根据需要覆盖单元格值。当用户按下数字键时,单元格进入编辑模式并允许用户覆盖值。如果键不是数字,则什么也不会发生...这工作得很好......问题是我发现它的代码很丑......我似乎找不到一种巧妙的方法来处理单一条件下的所有数字键,因此我制作了一个switchcase结构来处理所有可能的数字键,如下所示:switch(e.KeyCode){caseKeys.D0:caseKeys.D1:caseKeys.D2:caseKeys.D3:caseKeys.D4:caseKeys.D5:cas

c# - 这个 ASP.NET 顾问知道他在做什么吗?

我们子公司的IT部门让一家咨询公司为他们编写了一个ASP.NET应用程序。现在,它会间歇性地混淆当前用户是谁,并且会错误地向Joe显示Bob的一些数据。顾问被召回进行故障排除,我们被邀请聆听他们的解释。有两件事很突出。首先,顾问领导提供了这个伪代码:voidMyFunction(){Session["UserID"]=SomeProprietarySessionManagementLookup();Response.Redirect("SomeOtherPage.aspx");}他接着说session变量的赋值是异步的,这好像不对。允许对查找函数的调用可以异步执行某些操作,但这似乎不明

c# - 我如何知道执行应用程序的用户的配置文件是否是临时配置文件?

在C#应用程序中,我使用DSACryptoServiceProvider创建签名。如果执行应用程序的用户有一个临时配置文件,我会得到一个异常:CryptographicException:"Theprofilefortheuserisatemporaryprofile."如果我设置DSACryptoServiceProvider.UseMachineKeyStore=true就可以解决这个问题;但我首先要检查是否需要进行此更改。为此,我希望在我的代码中检查用户是否具有临时配置文件。我如何检查? 最佳答案 我在这个问题上找到的唯一信息

c# - GetType() 如何知道派生类的类型?

为什么会这样:Objecto="mystring";Console.WriteLine(o.GetType());输出:System.String如果函数调用被分派(dispatch)到String类,这将是有意义的,但它没有,因为GetType()不是虚拟的。 最佳答案 执行时类型是对象本身数据的一部分。它几乎就像是System.Object中的一个隐藏的只读字段,而GetType()只是返回该字段的值。(这不是那么简单,但这是一个合理的近似值。)请注意,此信息对于CLR确定在何处分派(dispatch)虚拟方法是必需的-因此,如

c# - C#/.Net 泛型如何知道它们的参数类型?

在C#中,泛型函数或类知道其泛型参数的类型。这意味着动态类型信息,如is或as可用(与Java不可用的情况相反)。我很好奇,编译器如何将这种类型信息提供给泛型方法?对于我可以想象的类,实例可以简单地有一个指向类型的指针,但对于泛型函数我不确定,也许只是一个隐藏的参数?如果泛型被保留到IL级别,我相信它们是,那么我想知道这是如何在该级别完成的。 最佳答案 由于您已经编辑了您的问题以将其从C#编译器扩展到JIT编译器,这里是该过程的概述,采用List作为我们的例子。正如我们所确定的,List只有一种IL表示。类(class)。此表示具有

c# - 有没有办法知道是否正在等待任务?

我有一个方法publicTaskDoSomeWorkOnARemoteMachine()它非常具有描述性,通过以下方式在远程机器上执行一些工作:在消息总线上排队消息,表明工作应该完成远程代理接收消息并执行工作工作完成,代理在消息总线上排队消息以表明工作已完成调用工作的应用程序接收工作完成的消息我使用Task的原因是因为第一个Task用于消息的排队;而内部Task当远程机器上的工作完成时(即收到来自代理的消息时),就完成了。远程代理在工作执行期间捕获的任何异常都与完成消息一起传递,并在内部Task时重新抛出。完成。要调用此方法,我使用:awaitawaitDoSomeWorkOnARem

c# - 如何让 Silverlight 客户端知道用户的 IP 地址

我正在尝试找到一种方法让Silverlight客户端知道当前用户的IP地址。我以前也看到过类似的信息,但是引用将其传回服务器,这与我的目的不同。我正在尝试编写一个简单的应用程序,它根据用户的IP地址更改MediaElement的源。因此,IP地址仅在客户端需要。有没有办法不使用网络服务就可以找到IP地址?如果我必须使用Web服务,那么使用哪个比较好? 最佳答案 在这个项目上工作了一段时间后,我想我找到了一个更简单的解决方案,那就是托管在ASP.net页面中。,cc=true,m=/relative"/>我更喜欢在ASP中使用init