2013-04-17 78 views
1

我想爲在後臺運行的遊戲玩家創建一個實用程序。我需要做的是在某些場合在遊戲中顯示可見消息。所以我的窗口不需要一直顯示,但是在某些事件(按鍵組合,我有註冊全局鍵的工具)時它應該彈出。繪製字面上的所有內容

我開始在WPF中開發,如果我將Window屬性設置爲true,它將保持在最前面,只要我不啓動另一個應用程序,它將成爲最頂層。當然,遊戲確實是最頂層的,所以我的窗口不會被看到。我應該如何在WPF中解決這個問題(如果甚至可以解決的話)?

如果在Winforms中有一個簡單的解決方案,我也歡迎。即使是C++ OpenGL解決方案或提示也會派上用場。

我知道這不是一項簡單的任務,但它肯定是可以做到的。 Xfire就是一個很好的例子,用戶可以在那裏聊天玩遊戲。

回答

1

我不認爲這是可能的使用通常的窗口,但我有幾個建議&一個解決方案。

1)讓遊戲開始,然後設置您的最頂層屬性。請記住理論上最後一個設置Topmost勝出的窗口。請注意,您可能需要使用SetWindowPos函數將Topmost移除/添加到遊戲/您的窗口。

2)一個實際的解決方案涉及將自己掛在DirectX上,假設大多數遊戲都使用DirectX運行。請參閱this針對DIrect9X Base鉤子示例的線程。然後你可以自定義繪製遊戲UI。你需要做很多工作來支持Direct9/10/11,並且它也可能很危險,因爲注入遊戲是安全風險。

+0

謝謝您的快速回答。我會嘗試第一個,但最終我會推薦DirectX窗口。 – VSZM

+0

我嘗試了第一個,它不適用於全屏遊戲。第二個我會遇到一些麻煩,因爲我必須將DLL-s導入到c#中,因爲您引用的DX9 Hook API是用C++編寫的。 – VSZM

相關問題