//Hook,cpp
#include <WINDOWS.H>
#include "Hook.h"#pragma data_seg("Shared")
static HHOOK hHook = NULL;
#pragma data_seg()
#pragma comment(linker, "/Section:Shared,rws")BOOL installHook(BOOL bInstall)
{
if(bInstall)
{
hHook  = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, NULL, 0);
return TRUE;
}
else
{
UnhookWindowsHookEx(hHook);
return TRUE;
}
return TRUE;
}LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)

    if(((DWORD)lParam&0x40000000) && (HC_ACTION==nCode))
    {
switch(wParam) //键盘按键标识
        {
case VK_HOME:
/

MessageBox(NULL, TEXT("Attach"), "Attach", MB_ICONERROR);
break;
default:
break;
        }
} LRESULT RetVal = CallNextHookEx(hHook, nCode, wParam, lParam); 
return RetVal;
}int WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, PVOID pvReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
default:
break;
}
return TRUE;
}
//hook.def
LIBRARY      "hook"
DESCRIPTION  'hook Windows Dynamic Link Library'EXPORTS
    installHook   ; Explicit exports can go here
我的调用
if(!(hModule = LoadLibrary(TEXT("hook.dll"))))
{
MessageBox(NULL, TEXT("Can not find the maindll.dll or fail to init this DLL,you only can use the window function!"),
szAppName, MB_ICONERROR);
}
GetModuleFileName(hModule, szUnlimitedDllPath, MAX_PATH);
inshk = (installHook)GetProcAddress(hModule, "installHook");
inshk(TRUE);
没有作用啊,按道理来说应该弹出一个对话框的啊!