我想为在后台运行的游戏玩家创建一个实用程序。我需要做的是,在某些场合显示游戏中的可见消息。所以我的窗口不需要一直可见,但在某些事件(组合键,我有工具来注册全局键)它应该弹出。
我在WPF中开始开发,如果我将Window属性Topmost设置为true,它将保持在顶部,只要我不启动另一个想要成为最顶层的应用程序。当然游戏确实想成为最顶层的,所以我的窗口将不可见。我应该如何在WPF中解决这个问题(如果甚至可以解决的话)?
如果在Winforms中有一个简单的解决方案,我也欢迎。即使是C ++ OpenGL解决方案或提示也会派上用场。
我知道这不是一项微不足道的任务,但肯定可以做到。一个很好的例子是Xfire,用户可以在游戏中同时聊天。
答案 0 :(得分:1)
我不认为使用通常的窗户是可能的,但我没有什么建议和一个解决方案。
1)让游戏开始,然后设置你的Topmost属性。请记住,理论上设置Topmost的最后一个窗口获胜。请注意,您可能需要使用SetWindowPos功能删除/添加Topmost到游戏/您的窗口。
2)实际解决方案涉及将自己挂钩到DirectX,假设大多数游戏都使用DirectX运行。有关DIrect9X Base hook示例,请参阅this主题。然后,您可以自定义绘制游戏UI。你需要做很多工作来支持Direct9 / 10/11,这也很危险,因为注入游戏是一种安全风险。