关于键盘钩子的问题
郁闷 以前写过钩子的代码 但是弄丢了
现在再搜索出来 编译老是出错 各位老大帮我看看代码或是我的方法有什麽问题吗?
代码:
//----------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
//----------------------------------------------------------------------
extern "C" __declspec(dllexport) void __stdcall SetHook(HWND,bool);
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam);
//-----------------------------------------------------------------------
static HINSTANCE hInstance; // 应用实例句柄
static HWND hWndMain; // MainForm句柄
static HHOOK hKeyHook; // HOOK句柄
static const myMessage=2000; // 自定义消息号
static const SecondPar=1; // 自定义消息第2参数
//--------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*
lpReserved)
{
hInstance = hinst;
return 1;
}
//----------------------------------------------------------------
void __stdcall SetHook(HWND hMainWin,bool nCode)
{
if(nCode) // 安放HOOK
{
hWndMain=hMainWin;
hKeyHook=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)HookProc,hInstance,0);
}
else // 卸下HOOK
UnhookWindowsHookEx(hKeyHook);
}
//---------------------------------------------------------------------
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
EVENTMSG *keyMSG=(EVENTMSG *)lParam;
if((nCode==HC_ACTION)&&(keyMSG->message==WM_KEYUP))
PostMessage(hWndMain,myMessage,(char)(keyMSG->paramL),SecondPar);
// 向调用窗体发消息myMessage和虚拟键码(char)(keyMSG->paramL)
return((int)CallNextHookEx(hKeyHook,nCode,wParam,lParam));
}
//----------------------------------------------------------------------
代码是网上找的 我BCB是初学者
用的是BCB6 在用DLL向导建立DLL的,选择了C的DLL