2

我想为在后台运行的游戏玩家创建一个实用程序。我需要做的是在游戏中显示可见消息在某些情况下所以我的窗口不需要一直可见,但是在某些事件上(组合键,我有注册全局键的工具)它应该弹出。

我开始在 WPF 中进行开发,如果我将 Window 属性 Topmost 设置为 true,只要我不启动另一个想要成为最顶层的应用程序,它将保持在最前面。当然,游戏确实想成为最顶级的,所以我的窗口将不可见。我应该如何在 WPF 中解决这个问题(如果它甚至可以解决)?

如果 Winforms 中有一个简单的解决方案,我也欢迎。即使是 C++ OpenGL 解决方案或技巧也会派上用场。

我知道这不是一项微不足道的任务,但肯定是可以做到的。一个很好的例子是 Xfire,用户可以在玩游戏的同时聊天。

4

1 回答 1

2

我认为使用通常的窗口是不可能的,但我没有什么建议和一种解决方案。

1) 让游戏开始,然后设置您的 Topmost 属性。请记住,理论上设置 Topmost 的最后一个窗口获胜。请注意,您可能需要使用SetWindowPos函数将 Topmost 删除/添加到游戏/您的窗口。

2) 一个实际的解决方案包括将自己连接到 DirectX,假设大多数游戏都使用 DirectX 运行。有关 DIrect9X Base hook 示例,请参阅线程。然后,您可以自定义绘制游戏 UI。你需要做很多工作来支持 Direct9/10/11,这也可能很危险,因为注入游戏是一种安全风险。

于 2013-04-17T04:43:29.717 回答