关于getMsgProc 线程hook的问题,求助
private static  GetMsgProc intHOOK = new GetMsgProc(myHOOK);
public void startHook()
         {//Process[] po=Process.GetProcessesByName("notepad");
         //foreach (Process e1 in po)
        // {                                            
             using(Process mb=Process.GetCurrentProcess())
             using(ProcessModule pm=mb.MainModule)
             {
                 useHandle = SetWindowsHookEx(WH_GETMESSAGE, intHOOK, GetModuleHandle(pm.ModuleName), GetWindowThreadProcessId( FindWindowEx(FindWindow(null,"无标题-记事本"), 0, "Edit", null), 0));
         }
             }
         private const int WM_KEYDOWN = 100;
         private enum MouseMessages
         {
             PM_NOREMOVE = 0x00000000,
        PM_REMOVE=0x00000001
         }
         public static IntPtr myHOOK(int code, IntPtr wParam, IntPtr lParam)
         {
             MsgHookStruct MyMsgHookStruct = (MsgHookStruct)Marshal.PtrToStructure(lParam, typeof(MsgHookStruct));
             if (code < 0)
             {
                 return CallNextHookEx(useHandle, code, wParam, lParam);
             }
              if((code>=0)&& ((MouseMessages)wParam== MouseMessages.PM_REMOVE))  
             { //{switch ( MyMsgHookStruct.message)
                 // {case WM_KEYDOWN:
                 MessageBox.Show("MyMsgHookStruct.pt.x.ToString()");
                 // break;
                 // }
                 // }                                
             }
             return CallNextHookEx(useHandle, code, wParam, lParam);
         }
我想对进程中的记事本窗口设置HOOK , 为什么一使用hook就自动关闭VS程序,或者自动关闭记事本程序,或者还没有调用peekmessage或者getmessage的时候,MessageBox.Show("MyMsgHookStruct.pt.x.ToString()")就会自动执行了?
------解决方案--------------------
帮你顶
------解决方案--------------------
down