在我的键盘钩子中,每次按键都会有一个标志,表明它是否被注入。http://msdn.microsoft.com/en-us/library/ms644967(VS.85).aspx http://msdn.microsoft.com/en-us/library/ms644967(VS.85).aspx
我从 lParam 中提取了 KBDLLHOOKSTRUCT。我可以访问 kbd.flags.XXX。我只是不知道如何将这个8位标志转换为if (injected) {...
输入我知道如何使用的条件。
如果你们中的一位聪明的计算机科学人士能够帮助我,我将非常感激。
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
KBDLLHOOKSTRUCT kbd = new KBDLLHOOKSTRUCT();
Marshal.PtrToStructure(lParam, kbd);
//if (injected) {...
Cheers!
.NET 通过 [Flags] 属性支持此功能:
[Flags]
enum KbdHookFlags {
Extended = 0x01,
Injected = 0x10,
AltPressed = 0x20,
Released = 0x80
}
使用示例:
KBDLLHOOKSTRUCT info = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
if ((info.flags & KbdHookFlags.Released) == KbdHookFlags.Released) {
// Key was released
// etc..
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)