如何在C++Builder控制台程序下拦截Windows所发出的所有关于键盘,鼠标的消息(在线等)
我编写了一个程序:
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
HHOOK hHook;
HINSTANCE inst;
LRESULT CALLBACK KeyboardProc(int,WPARAM,LPARAM);
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
hHook=::SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,inst,0);
TMsg Msg;
while(GetMessage(&Msg,0,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
//---------------------------------------------------------------------------
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
char keytext[80];
::GetKeyNameText(lParam,keytext,80);
::TextOut(GetDC(0),10,10,keytext,10);
return ::CallNextHookEx(hHook,nCode,wParam,lParam);
}
可是却不能拦截,需要怎么改进呢?