回复 5楼 hqb2015ok
我没用按键精灵,只用了XP自带的虚拟键盘测试GetAsyncKeyState,程序只对硬键盘响应。估计不乐观。
按键精灵利用keybd_event模拟键盘消息,如果扫描码是零。你可以检测
struct tagKBDLLHOOKSTRUCT {
DWORD
vkCode;
DWORD
scanCode;
DWORD
flags;
DWORD
time;
ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT, *LPKBDLLHOOKSTRUCT;
中的scancode来判断是否是按键精灵发出的消息。
另
Raw Input API绝对是根本解决方案,参见https://msdn.(v=vs.85).aspx
这个应该花时间琢磨琢磨。
周一有时间可以帮你试试。
...
用Raw Input试了按键精灵9,无效。这个按键精灵根本不是发WM_KEYDONW/UP来模拟按键。RAW INPUT的接收的WM_INPUT消息也无法屏蔽掉按键精灵。刚看到http://www. 模拟程序可以向更底层的向端口写数据。我这儿是无解了。要不针对商业应用开发出来的保护机制就不值价了。
[
本帖最后由 lianyicq 于 2015-4-21 16:18 编辑 ]