Global Hook的问题 未处理Win32Exception 操作成功完成

Error_Code 2008-03-11 06:26:06
CodeProject上的项目 全局钩子
http://www.codeproject.com/KB/cs/globalhook.aspx
问题是作者的Demo一切正常
而我写同样的 会出现 未处理Win32Exception 操作成功完成这样的错误

//作者的代码
UserActivityHook actHook;
void MainFormLoad(object sender, System.EventArgs e)
{
actHook = new UserActivityHook(); // crate an instance with global hooks
// hang on events
actHook.KeyDown+=new KeyEventHandler(MyKeyDown);
}
public void MyKeyDown(object sender, KeyEventArgs e)
{
LogWrite("KeyDown - " + e.KeyData.ToString());
}
private void LogWrite(string txt)
{
textBox.AppendText(txt + Environment.NewLine);
textBox.SelectionStart = textBox.Text.Length;
}


//我的代码
UserActivityHook actHook;
private void AppForm_Load(object sender, EventArgs e)
{
actHook = new UserActivityHook(false,true);
actHook.KeyDown += new KeyEventHandler(MyKeyDown);
}
public void MyKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.F12)
{
MessageBox.Show("F12");
}
else
return;
}
//错误定位在UserActivityHook.cs文件的第562行 throw new Win32Exception(errorCode);
...全文
635 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhair1314520 2011-07-29
  • 打赏
  • 举报
回复
11楼正解 谢谢了
tkscascor 2010-03-19
  • 打赏
  • 举报
回复
学习.~
Error_Code 2008-03-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lake_cx 的回复:]
项目-属性-调试-启用Visual Studio宿主进程
把勾去掉
[/Quote]
正解 解决了 给分
lake_cx 2008-03-13
  • 打赏
  • 举报
回复
看了它的代码,却没弄懂它的全局钩子是怎么弄成的,按常理说应该只能钩挂自己的进程的消息。
全局钩子不是需要DLL的,而且会注入其他进程的,但是托管下的它是怎么工作的,还没搞明白。。。
lake_cx 2008-03-13
  • 打赏
  • 举报
回复
项目-属性-调试-启用Visual Studio宿主进程
把勾去掉
Error_Code 2008-03-12
  • 打赏
  • 举报
回复
UP
Error_Code 2008-03-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lake_cx 的回复:]
你在HookProc用MessageBox.Show("F12");啊?要是人家用的是阻塞模式的话系统都要挂了。。。
[/Quote]
还是不对啊 我改了不用msgbox 换成改变标题还是出那问题
奇怪作者的demo一点问题都没有
Error_Code 2008-03-12
  • 打赏
  • 举报
回复
啊?? hookproc不能用msgbox??
我的msgbox只用来试下有效果没 居然....... >_<
lake_cx 2008-03-12
  • 打赏
  • 举报
回复
你在HookProc用MessageBox.Show("F12");啊?要是人家用的是阻塞模式的话系统都要挂了。。。
wzuomin 2008-03-12
  • 打赏
  • 举报
回复
我用vb也写了个 鼠标 键盘 钩子,没发现有什么问题啊。
我这里也有源码
http://blog.csdn.net/wzuomin/archive/2007/06/18/1656315.aspx
Error_Code 2008-03-11
  • 打赏
  • 举报
回复
顶上去 期待星星出现
Error_Code 2008-03-11
  • 打赏
  • 举报
回复
我没有改 那个构造函数有个重载的
第一个false是不使用鼠标HOOK 第2个true是使用键盘hook
我吧他改成不带参数的构造函数 也是那个问题

LS的好人你能不能new一个项目用的试下看会不会出那个问题???
wenbin 2008-03-11
  • 打赏
  • 举报
回复
actHook = new UserActivityHook(false,true);//你的
actHook = new UserActivityHook(); //作者的
构造函数不一样
你修改了UserActivityHook吗?
Error_Code 2008-03-11
  • 打赏
  • 举报
回复
恩 是作者写好的类
委托类型没错 完全是复制作者的demo里的代码
开始也以为UserActivityHook跟作者的项目里的UserActivityHook不一样
又重新把他的UserActivityHook覆盖掉我项目里的同名文件
问题依旧

哪位可以吧上面那个项目下载下来看看问题出在哪??
wenbin 2008-03-11
  • 打赏
  • 举报
回复
UserActivityHook 你的委托类型估计出问题了吧
参数不太对嘛
UserActivityHook 是什么?
类吗?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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