关于键盘钩子的问题

ray929 2005-11-03 02:33:58
郁闷 以前写过钩子的代码 但是弄丢了
现在再搜索出来 编译老是出错 各位老大帮我看看代码或是我的方法有什麽问题吗?

代码:


//----------------------------------------------------------------------
#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

...全文
241 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ray929 2005-11-06
  • 打赏
  • 举报
回复
测试正常了

//////////////
用的是BCB6 在用DLL向导建立DLL的,选择了C的DLL
/////////////
应该用c++的
shadowstar 2005-11-04
  • 打赏
  • 举报
回复
我试过了,正常。
shadowstar 2005-11-04
  • 打赏
  • 举报
回复
回复人: shadowstar(CodeFast.very fast...) ( ) 信誉:93 2005-11-3 14:51:33 得分: 0



应该是工程配置的问题吧。

你新建一个DLL工程,不要选VCL,把代码拷贝过去试试。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ray929 2005-11-04
  • 打赏
  • 举报
回复
回复人: FengSC(小猪快跑) ( ) 信誉:94 2005-11-3 15:55:10 得分: 0




#include <vcl.h>
改成
//#include <vcl.h>
试一下呢



我曾经把这行删除过,删了之后就是另外的错误了


Build
[C++ Error] Unit1.c(7): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.c(26): E2303 Type name expected
FengSC 2005-11-03
  • 打赏
  • 举报
回复

#include <vcl.h>
改成
//#include <vcl.h>
试一下呢
ray929 2005-11-03
  • 打赏
  • 举报
回复
回复人: shadowstar(CodeFast.very fast...) ( ) 信誉:93 2005-11-03 14:51:00 得分: 0


应该是工程配置的问题吧。

你新建一个DLL工程,不要选VCL,把代码拷贝过去试试。


===============================================================
我没有选VCL阿


回复人: lftiger9949(渴望真实) ( ) 信誉:100 2005-11-03 15:00:00 得分: 0


程序没有什么问题,出错有可能有两个问题,一:你引用的#include <vcl.h>这个文件没有,还有就是没有主函数入口,我不知道是不是因为这些,试一下吧,
========================================================================

不是很懂您的意思

lftiger9949 2005-11-03
  • 打赏
  • 举报
回复
程序没有什么问题,出错有可能有两个问题,一:你引用的#include <vcl.h>这个文件没有,还有就是没有主函数入口,我不知道是不是因为这些,试一下吧,
shadowstar 2005-11-03
  • 打赏
  • 举报
回复
应该是工程配置的问题吧。

你新建一个DLL工程,不要选VCL,把代码拷贝过去试试。
ray929 2005-11-03
  • 打赏
  • 举报
回复
Build
[C++ Error] sysmac.H(50): E2040 Declaration terminated incorrectly
[C++ Error] unknwn.h(233): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(234): E2303 Type name expected
[C++ Error] unknwn.h(244): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(245): E2303 Type name expected
[C++ Error] unknwn.h(255): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(256): E2303 Type name expected
[C++ Error] unknwn.h(396): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(397): E2303 Type name expected
[C++ Error] unknwn.h(408): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(409): E2303 Type name expected
[C++ Error] unknwn.h(419): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(420): E2303 Type name expected
[C++ Error] unknwn.h(430): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(431): E2303 Type name expected
[C++ Error] unknwn.h(441): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(442): E2303 Type name expected
[C++ Error] unknwn.h(452): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(453): E2303 Type name expected
[C++ Error] unknwn.h(559): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(560): E2303 Type name expected
[C++ Error] unknwn.h(571): E2147 'IRpcStubBuffer' cannot start a parameter declaration
[C++ Error] unknwn.h(572): E2303 Type name expected
[C++ Error] sysmac.H(151): E2141 Declaration syntax error
[C++ Error] System.hpp(17): E2141 Declaration syntax error
[C++ Error] System.hpp(17): E2228 Too many error or warning messages
shadowstar 2005-11-03
  • 打赏
  • 举报
回复
出错信息也要给出来吧?

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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