C# winform使用钩子 SetWinDowsHookEx

在网上下载了一个鼠标钩子的代码,运行后很正常。然后把代码复制到自己的程序中就没有效果,跟踪后发现是在我的程序里时SetWinDowsHookEx返回的总是0,也就是失败,... 在网上下载了一个鼠标钩子的代码,运行后很正常。然后把代码复制到自己的程序中就没有效果,跟踪后发现是在我的程序里时SetWinDowsHookEx 返回的总是0,也就是失败,但是我同时运行他的程序跟我的程序,代码一样的情况下 他的就可以正常,我的就失败,,不知道原因,谁有类似的情况或者遇见过这种问题提供下解决办法,,
问题主题SetWinDowsHookEx 总返回0
展开
 我来答
36...4@qq.com
2011-10-27
知道答主
回答量:15
采纳率:0%
帮助的人:2.5万
展开全部
重新生成一下,再运行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
msjsp
2011-10-27 · TA获得超过331个赞
知道答主
回答量:70
采纳率:0%
帮助的人:79.2万
展开全部
到你的项目属性页 - 调试 - 把 “启用Visual Studio 宿主进程”那个√去掉。再试试。就OK 啦。
追问
我用的2010,不是这个问题,试过了不行,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9e230e8
2020-08-21
知道答主
回答量:1
采纳率:0%
帮助的人:580
展开全部
使用WINDOWS API函数代替获取当前实例的函数:

用:
[DllImport("kernel32.dll")]
public static extern IntPtr GetModuleHandle(string name);

GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName)

代替:
Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0])

当作 SetWindowsHookEx 的第三个参数: IntPtr hInstance
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式