完整逻辑:
通过process start 打开一个第三方exe(当然这不是关键)。
通过SetWindowsHookEx(引用user32) 设置一个CBT类型的钩子,判断第三方应用最小化了,做出响应。
hHook = SetWindowsHookEx((int)HookType.WH_CBT, new HookProc(CBTHookCallback), GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), threadid);
第四个参数threadid,不管是设置为系统级 0 ,还是第三方应用的threadid,hHook总是返回0???补充一点:如果threadid 换成 AppDomain.GetCurrentThreadId() 钩自己,没有问题。
GetLastError  = (1428) -没有模块句柄无法设置非本机的挂接。C#钩子