我参考网上的资料做了一个全局钩子,我想使用WH_CBT来捕获其它应用程序关闭的消息。如代码:hookFlag = SetWindowsHookEx(WH_CBT, m_HookDelegate, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]),0);钩子处理函数:
private int HookProc(int nCode, int wParam, IntPtr lParam)
{
if (nCode == HCBT_ACTIVATE)
{
//这里。。永远都不会执行
}
return CallNextHookEx(hookFlag, nCode, wParam, lParam);
}
现在的问题是,在安装钩子后,感觉好像监控不到任何消息,我想监控指定的应用程序,也不行,如代码:
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.CreateNoWindow = true;
process.Start();
kk = (int)process.MainWindowHandle;
.....安装钩子时,
hookFlag = SetWindowsHookEx(WH_CBT, m_HookDelegate, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]),kk);
这样,记事本程序是打开了,但无论其状态如何变化(如,激活)也收不到它任何消息.请问,要达到我的目的,该用什么类型的钩子呢?在下对钩子还不熟悉,请高手指点一下。谢谢
private int HookProc(int nCode, int wParam, IntPtr lParam)
{
if (nCode == HCBT_ACTIVATE)
{
//这里。。永远都不会执行
}
return CallNextHookEx(hookFlag, nCode, wParam, lParam);
}
现在的问题是,在安装钩子后,感觉好像监控不到任何消息,我想监控指定的应用程序,也不行,如代码:
Process process = new Process();
process.StartInfo.FileName = "notepad.exe";
process.StartInfo.CreateNoWindow = true;
process.Start();
kk = (int)process.MainWindowHandle;
.....安装钩子时,
hookFlag = SetWindowsHookEx(WH_CBT, m_HookDelegate, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]),kk);
这样,记事本程序是打开了,但无论其状态如何变化(如,激活)也收不到它任何消息.请问,要达到我的目的,该用什么类型的钩子呢?在下对钩子还不熟悉,请高手指点一下。谢谢
解决方案 »
- 分页控件AspNetPager+GridView+xml如何实现分页??
- |ZYCWPF| WPF中的Interaction.Triggers中的DataTrigger如何把一段设置提取出来呢?谢谢
- <<C#高级编程>>哪个版本好
- 正则表达式匹配将Administrator,yang,Domain Admins,ray中不是Administrator并且不是Domain Admins的匹配出来!
- C#邮件接收问题!
- 问大家一个问题,,我写的一个网页,为什么后面的脚本能运行,而前面的脚本不能运行啊?江湖告急
- 几个关于DataGrid控件的问题,有点急
- 我把窗体设置为none了,现在想全平显示,不知道该怎么写了
- 01cn 精华(2003--2004,含软件工程,Delphi,java等等,请大家帮忙提前)
- 如何使没有登陆的用户不能直接进入系统页面,而只能登陆登陆页面?C# for Web Form?在线等,马上给分
- C# 菜鸟求助:如何将Excel中的内容导入到DataGrid中显示,最好有代码
- 关于"相等"的疑问:引用类型/值类型/特殊的String/==/ReferenceEquals/
除非 用委托指向一个自然DLL的导出函数,也就是执行过程在DLL里面,在c#只是获得DLL执行的结果