各位高手请看帖子中的问题。

sunboy 2000-05-04 05:14:00
我想作一个键盘HOOK,用BCB5作了一个KEY.DLL,原程序如下:

extern "C" __declspec(dllexport) int __stdcall StartKeyHook(void);
extern "C" __declspec(dllexport) int __stdcall StopKeyHook(void);

LRESULT CALLBACK KeyHook(int nCode,WORD wParam,DWORD lParam);

static HANDLE hInstance;
static HHOOK hKeyHook = 0;


int __stdcall StartKeyHook()
{

if(hKeyHook) return 1;
hKeyHook=SetWindowsHookEx(WH_KEYBOARD,KeyHook,hInstance,0);
}

int __stdcall StopKeyHook()
{
if(hKeyHook)
{
UnhookWindowsHookEx(hKeyHook);
hKeyHook = 0;
}
return 0;
}

LRESULT CALLBACK KeyHook(int nCode,WORD wParam,DWORD lParam)
{
if(nCode>=0)
{
return 1;
}
return((int)CallNextHookEx(hKeyHook,nCode,wParam,lParam));
}

用BCB5作了一个应用来调用该DLL,包含一个编辑框,两个按钮,一个用于START
KEYHOOK,一个用于STOP KEYHOOK,在未START KEYHOOK时,编辑框和NOTEPAD都
可输入字符,但START KEYHOOK后,编辑框不能输入字符是正常的,但在NOTEPAD中,
只要一敲键盘,系统就告诉我出现严重错误,我想该KEYHOOK在DLL中已用
SetWindowsHookEx函数声明是全局性的,为什么还出错?请各位高手指教!谢谢!
...全文
169 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin 2000-05-05
  • 打赏
  • 举报
回复
试试:用关键字Export输出KeyHook。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧