我有一个应用程序,它记录空格键被按下时的日期/时间--不幸的是,由于各种原因,窗口并不总是有焦点。病毒检查器弹出、itunes更新、windows更新等。
所以,我认为一个很酷的想法是使用一个操纵杆按钮,然后不管哪个窗口有焦点,我总是可以检测按钮按下事件,并记录它被按下的日期/时间。
现在我看了几个游戏教程,但他们似乎把操纵杆轮询与屏幕刷新事件联系在一起,因为在游戏中,如果电脑速度慢,屏幕不经常刷新,按下操纵杆按钮也不会有什么影响。
这并不符合我的需要,所以我正在考虑运行一个线程,它会经常轮询操纵杆。
我的问题是
我希望这些回复至少相当于一个键盘。还需要确保它不会自动重复,如果扳机是按住的。
任何示例代码(C#)都非常感谢
谢谢
亚历克斯
发布于 2009-04-09 01:55:23
您最好的选择是在窗体上创建一个计时器对象,并将操纵杆检查与滴答事件联系起来。
我还发现,每100 10运行一次这样的简单程序(每秒10次)对CPU使用的影响可以忽略不计。
发布于 2009-04-09 02:10:31
如果你想去轮询操纵杆仅仅因为你不能捕捉键盘事件,我认为你需要重新制定你的策略。
即使您的表单没有焦点,也有一些方法可以确保您知道键盘状态。
这是对非托管代码和Windows的深入研究,但我认为这比轮询操纵杆更好,因为您不需要仅仅因为需要在空格键上捕捉日期时间就向计算机添加操纵杆。
在google上搜索一下C#中的键盘挂钩。这比许多人所相信的要容易。
我不认为使用计时器对象来做这是一个好主意。因为我相信你说过你需要按下钥匙。
发布于 2009-04-09 02:22:41
使用像汽车HotKey( AHK )这样的简单语言,可以编译成EXE,并且是为键盘和鼠标的自动化而设计的,我不能100%确定它与操纵杆的工作效果如何,但我确信他们有可能为wii遥控器编写了一些东西。
此外,IRC频道和论坛总是有人们愿意帮助,如果需要的话。
https://stackoverflow.com/questions/732509
复制相似问题