//.cpp#include "windows.h"#define WH_KEYBOARD_LL 13typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;HHOOK hHook = NULL;
HINSTANCE hInstance = NULL;void WINAPI StartHook();
void WINAPI StopHook();
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
hInstance = (HINSTANCE)hModule;
return TRUE;
}LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
KBDLLHOOKSTRUCT* kb = (KBDLLHOOKSTRUCT*)lParam;
bool exp = kb->vkCode == 91 || kb->vkCode == 92 || kb->vkCode >= 160 && kb->vkCode <= 165;
if (exp) return TRUE;
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}void WINAPI StartHook()
{
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
}void WINAPI StopHook()
{
UnhookWindowsHookEx(hHook);
}//.defEXPORTS
StartHook @1
StopHook @2要求编译成.DLL文件,多谢!
[email protected]
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;HHOOK hHook = NULL;
HINSTANCE hInstance = NULL;void WINAPI StartHook();
void WINAPI StopHook();
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
hInstance = (HINSTANCE)hModule;
return TRUE;
}LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
KBDLLHOOKSTRUCT* kb = (KBDLLHOOKSTRUCT*)lParam;
bool exp = kb->vkCode == 91 || kb->vkCode == 92 || kb->vkCode >= 160 && kb->vkCode <= 165;
if (exp) return TRUE;
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}void WINAPI StartHook()
{
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
}void WINAPI StopHook()
{
UnhookWindowsHookEx(hHook);
}//.defEXPORTS
StartHook @1
StopHook @2要求编译成.DLL文件,多谢!
[email protected]
解决方案 »
- VS2005郁闷死人不偿命的问题
- 关于一结构指针数组,使用memcpy截取部分的疑问
- 紧急求助:VC6编译时调用的dll并且加入lib成功,但升级到vc2005时却出现了无法解析的外部符号。
- 请各位大虾推荐几个比较好的新闻组站点
- 设计一个通讯程序,使用4种方式完成两个进程之间的数据交换。
- 在TDBGRID中,逐行求和,当运算到最后一行时出错,VB实时错误'430',类不支持自动化或不支持期望的接口
- vc连接数据库的时候出现这样的问题,大家看看什么回事,谢谢了!
- 完成端口模型里如何知道接收的数据大小
- 32位程序在64位下重新编译的问题
- 哪能下载到VC6.0英文版?(教育网内地址不要,太慢了)
- 我用CListCtrl时怎么插入的东西全部显示在第一列内了?
- 苦恼,一个CStatic的问题!!!
VK_RSHIFT A1
VK_LCONTROL A2
VK_RCONTROL A3
VK_LMENU A4
这些键都被你屏蔽了,,,ft
[email protected]