2010-02-18 14 views
0

我試圖劫持一個現有的窗口,並將其替換爲我自己的Winforms的內容。 我想這將是非常酷的交換窗體的內部句柄與我想重寫的內容,並想知道是否有人曾試過嗎?用另一個替換現有的Winform HWND?

乾杯, 弗洛裏安

回答

0

如果你是在要替換窗口的進程和線程執行這應該輕易嘗試。如果你沒有運行原始窗口的進程和線程,那麼它的工作可能性就會降低。如果這是你正試圖更換的Windows shell的一部分,那麼它很可能是,你不會得到這個工作。

如果你可以做窗口替換,你將不得不以它期望原始子窗口響應的方式來響應父窗口,但大概你已經想過了。

如果父窗口持有原始子窗口句柄,那麼您嘗試替換它就會失敗(它仍然會嘗試與原始句柄交談)。但是如果它通過id來跟蹤孩子,那麼你所要做的就是給你的窗口設置相同的窗口ID,並使用SetWindowPos給它與原始孩子相同的大小和位置以及z順序,然後銷燬原來的孩子。

我希望你好運,這是高風險的行爲,但所有其他的黑客,你可以嘗試,而不是像子類和鉤。