2012-06-12 33 views
1

我正要將child window附加到外部應用程序。子窗口將是一個無模式的對話框。由於我不擁有外部應用程序的源代碼(實際上是Microsoft FSX),我不知道如何掛鉤到消息循環或父窗口本身的回調LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)從外部應用程序連接子窗口時的消息循環(泵)

我的附加應用程序運行在它自己的進程中,所以我需要編寫自己的消息循環,還是我的回調會由父消息泵調用?

未來的正確方法是什麼?

- 編輯爲回答關於SetWindowsHookEx功能 -

值得注意:

  1. How to hook external process with SetWindowsHookEx and WH_KEYBOARD
  2. SetWindowsHookEx in C#
  3. 也許不能正常工作,另一SetWindowsHookEx Example
+1

你如何附加它?只是SetParent?如果是這樣,那麼它使用你的消息泵和處理程序,但可能導致「怪異」。 – Deanna

+0

我只是在創建它時設置父窗口句柄。沒有「怪人」,什麼纔是正確的方法? –

+1

來自不同進程和用戶界面線程的託管控件會導致焦點,激活等問題。沒有主機進程窗口幫助,沒有標準的方法來實現這一點。沒有它的幫助的最好方法是DLL注入,因此它在進程和主UI線程中運行。 – Deanna

回答

相關問題