在所有东西上面画画

本文关键字: | 更新日期: 2023-09-27 18:09:47

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

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

如果在Winforms中有一个简单的解决方案,我也欢迎。甚至一个c++ OpenGL解决方案或技巧也会派上用场。

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

在所有东西上面画画

我不认为使用通常的窗口是可能的,但我有一些建议&一个解决方案。

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

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

相关文章:
  • 没有找到相关文章