本帖最后由 wanzhende 于 2010.10.4 17:13 编辑
想做一个“键盘锁”程序,需要HOOK键盘消息,没想到被微点给拦截了,代码如下:
//HOOK.DLL代码
#include "stdafx.h" #include "windows.h" _declspec(dllexport) void SetKeyBoardHook(HWND hwnd=NULL); _declspec(dllexport) void SetMouseHook(HWND hwnd=NULL); _declspec(dllexport) void UnKeyBoardHook(); _declspec(dllexport) void UnMouseHook(); HHOOK g_keyboard=NULL; HHOOK g_mouse=NULL; HWND g_hwnd; LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam) {
return 1; } LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam) {
return 1; } void SetKeyBoardHook(HWND hwnd) {
if(hwnd!=NULL)
g_hwnd=hwnd;
g_keyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle(L"Hook"),0); } void UnKeyBoardHook() { if(g_keyboard!=NULL)
UnhookWindowsHookEx(g_keyboard); } void SetMouseHook(HWND hwnd) { if(hwnd!=NULL)
g_hwnd=hwnd;
g_mouse=SetWindowsHookEx(WH_MOUSE,MouseProc,GetModuleHandle(L"Hook"),0); } void UnMouseHook() { if(g_mouse!=NULL)
UnhookWindowsHookEx(g_mouse); }
在可执行文件中执行HOOK.dll中的SetKeyBoardHook()函数之后,微点立即报警,选择放过之后并把微点给关了,按键盘任一键还是管用~
线程钩子管用,就是全局HOOK不管用,代码到其它没安装微点的机器上也管用,说明微点的放过没用啊,有点过于霸道了~
|