2 jinxiu2216 jinxiu2216 于 2013.08.22 19:21 提问

钩子总是创建失败,求解答
c#

最近需要使用全局钩子的相关功能,用的是C#语言,
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL,
KeyboardHookProcedure,
Marshal.GetHINSTANCE(
Assembly.GetExecutingAssembly().GetModules()[0]),0);
以上是我的全局钩子调用语句,
我参照的是CSDN上的示例程序,源程序运行正常,能够监测全局的的鼠标,但是移植到我的项目中,总是创建钩子失败,得到的hKeyboardHook的值总是0,不知道什么状况。
我查了查资料,按照别人的建议,去掉了项目属性中的 “取消Visual Stadiod 宿主进程”功能,但还是创建失败,求各位路过的大牛帮忙解答......

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
WH_JOURNALRECORD与WH_JOURNALPLAYBACK应用(记录和回放)
/*****************HOOKService.h***********************/BOOL InstallOperationsHook(HWND,HINSTANCE);BOOL InstallOperationsDisplayHook(HWND,HINSTANCE);BOOL UnInstallOperationsHook();BOOL UnInstallOpe...
SVN上传临时目录导致svn钩子出错提示解决
一、去代码下将temp文件夹删除,也就是你的临时文件夹 二、重新服务器检出 ./svn co svn://本机ip地址/repos1   /home/wwwroot/website1
版本库钩子:pre-revprop-change 修订版本属性修改的通知
版本库钩子:pre-revprop-change 修订版本属性修改的通知 描述: pre-revprop-change钩子在修订版本属性修改之前,正常提交范围之外被执行,不象其他钩子,这个钩子默认是拒绝所有的属性修改,钩子必须实际存在并且返回一个零值,这样属性修改才能实现。 如果pre-revprop-change钩子没有实现或返回一个非零值,对属性的修改就不会成功,所以的标准错误输出会
VisualSVN钩子设置
SET REPOS=%1 SET USER=%2 SET SVN="D:\Program Files\VisualSVN Server\bin\svn.exe" SET DIR="D:\website\project1" (call %SVN% update %DIR% --username admin --password 123456 --non-interactive)
利用DLL构建全局钩子
钩子是一种很神奇的东西,yefeic
一个局部钩子实现
界面如下 点击安装按钮,安装局部钩子,在输入框中输入消息,输出框中输出消息 在cpp中定义三个全局变量  HHOOK g_hHook=NULL;  HWND  g_this=NULL;  CString   g_info=_T(""); 在安装按钮事件中填写 void CMFCApplication1Dlg::OnBnClickedInstrall() { g_this=th
SetWindowsHookEx设置全局钩子
用途该函数可以在R3下钩子,可监控键盘、鼠标、窗口等各种消息。监控到后调用指定的回调函数。函数原型HHOOK WINAPI SetWindowsHookEx( __in int idHook, \\钩子类型 __in HOOKPROC lpfn, \\回调函数地址 __in HINSTANCE hMod, \\包含函数的实例句柄,GetModuleHandleW(0)即可。 __in DWORD d
svn 钩子 post-commit 出现255错误解决办法
首先检查代码中是否有可执行命令 #!/bin/sh 然后 检查post-commit权限 post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。   chown svn:svn post-commit chmod +x post-commit http://www.cnblogs.com/kakaxi/p/3219894.htm
安装键盘钩子失败
public bool InstallHook(string flagsinfo)   {             this.flags = flagsinfo;             //获取当前可执行文件的句柄             IntPtr pInstance = Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().Man
svn钩子:pre-revprop-change,允许修改注释
 svn修改注释功能:将pre-revprop-change.tmpl复制成pre-revprop-change,并改变属性为: chmod 755 pre-revprop-change ;打开钩子,最后一部分应该为: if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi echo "Changing revision