Win屏蔽asm
感谢我的好友JampeHOOK部分代码,没有什么技术含量
/*--------------------------------------------------------------------*
* Win键屏蔽 *
* qxtianlong *
* 只是我研究学习之用 *
* 无聊之作 *
* 2006/12/27 *
* 如果有任何问题可以给我Email:[email protected] *
* 感谢所有帮助过我的朋友 *
* 第二人生俱乐部 *
*---------------------------------------------------------------------*/
#define _WIN32_WINNT 0x0400 //使用PKBDLLHOOKSTRUCT结构必须包含
#include <Windows.h>
#include "hook.h"
HINSTANCE g_hInstance;
HHOOK g_hKeyboard;
//消息处理
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
PKBDLLHOOKSTRUCT pKey;
switch(nCode)
{
case HC_ACTION:
{
pKey = (PKBDLLHOOKSTRUCT)lParam;//初始化对象
switch(wParam)
{
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
{
if((pKey->vkCode == VK_LWIN) || (pKey->vkCode == VK_RWIN))//屏蔽win键
{
return TRUE;
}
}
break;
default:
{
//什么都不干
}
break;
}
}//HC_ACTION
default:
{
//什么都不干
}
break;
}
return CallNextHookEx(g_hKeyboard,nCode,wParam,lParam);//传给系统继续处理
}
//初始化钩子
void __declspec(dllexport)InitHOOK()
{
g_hKeyboard = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, g_hInstance, 0);//安装钩子
}
//卸载钩子
void __declspec(dllexport)StopHOOK()
{
UnhookWindowsHookEx(g_hKeyboard);//卸载钩子
}
//主函数
BOOL WINAPI DllMain(HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved)
{
g_hInstance = hinstDLL;//保存实例
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
{
}
break;
case DLL_THREAD_ATTACH:
{
}
break;
case DLL_THREAD_DETACH:
{
}
break;
case DLL_PROCESS_DETACH:
{
}
break;
}
return TRUE;
}
页:
[1]