我用c#winfom程序A监控另一个窗体程序B的按钮点击事件,想在那个按钮点击时,执行我自己的一段程序。我使用了线程钩子,SetWindowsHookEx(WH_GETMESSAGE, proc, hInstance, tid)执行后并没有报错,但是程序B会崩溃退出。请给位帮忙看看是怎么回事呢?
string strClassName = "WindowsForms10.Window.8.app.0.141b42a_r7_ad1";
string strTitle = "Form1";
IntPtr hwnd = MouseHook.FindWindow(strClassName, strTitle);
int pid = 0;
int tid = MouseHook.GetWindowThreadProcessId(hwnd, ref pid);
HookProc proc =new HookProc (HookCallProc);
IntPtr hInstance = MouseHook.LoadLibraryA(@"E:\医院\SoftProject\Test\Solution1\WG_Client\bin\Debug\ENEW.HOOK.dll");
hHook = SetWindowsHookEx(WH_GETMESSAGE, proc, hInstance, tid);
if (hHook == 0)
{
MessageBox.Show("钩子安装失败!!!");
return false;
}
MessageBox.Show("ok");
return true;
回调方法:
public int HookCallProc(int nCode, Int32 wParam, IntPtr lParam)
{
// MessageBox.Show("111");
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
运行结果及报错内容 :
弹出ok 窗口后。B程序会退出
请大家帮忙分析一下错误在哪里呢?