Jer*_*ers 5 delphi pinvoke winapi
许多使用keybd_event的示例都具有bScan参数的值0x45.
0x45值是什么意思?
我的印象是0x45是键盘扫描码,但由于它用于各种键,我不再那么肯定了.
我的目标是使用keybd_event.NET P/Invoke或Delphi,并使类型更具限制性(使用例如枚举或标记的枚举),以便我的代码变得更容易维护.
它确实是一个扫描码,对于许多键盘来说,它是NumLock键的扫描码.
附加到文档的示例代码keybd_event是如何切换NumLock状态的示例.因此,自然使用0x45作为扫描码.我的猜测是,您发现的许多其他示例只是盲目地复制了keybd_eventMSDN示例中的值.由于应用程序通常会忽略扫描代码并响应虚拟键代码,因此通常将哪个值作为扫描代码传递并不重要.
最后,你要用SendInput而不是keybd_event.原因是前者允许您在队列中放置一系列事件.随着keybd_event您将事件一次放入队列中,您的伪造事件可能会散布在真实事件中.而这个问题是SendInput引入原因的主要原因之一.
| 归档时间: |
|
| 查看次数: |
2181 次 |
| 最近记录: |