在Windows游戏全屏覆盖单词/数字(如在Fraps中)

时间:2012-01-24 16:03:36

标签: c# directx overlay

我认为很多人使用应用程序“Fraps”来录制游戏视频。我用它在游戏中显示FPS(每秒帧数)。游戏运行时,Fraps可以在屏幕的角落显示数字。

我想显示处理器的核心温度。我会找到温度,但我需要知道,我怎么能在游戏中显示呢? (我需要它来测试游戏中的核心温度,因为Everest / AIDA64的压力测试对系统没有多大负担)。

想要使用C#(但可以收听所有解决方案,C ++,Java)
示例游戏:Dirt2,使命召唤5(DirectX)

P.S。这篇文章很相似...... c# text/winForm overlay video games like xfire,PIX,steam,fraps etc

2 个答案:

答案 0 :(得分:1)

你想做的事情比你想象的要复杂得多。网上有不同的消息来源,有些可能有点过时。一个好的搜索术语是“Hook direct 3d”,stackoverflow上还有关于这个主题的其他线程。一个好的主题也是this

一条建议:你正在改变游戏的运行时代码,这可以通过反作弊机制来检测,并且如果游戏是多人游戏则会导致禁止。甚至有可能像fraps这样的广为人知的应用程序正在对这些检查进行某种白名单,但我不确定。

答案 1 :(得分:0)

您想要的替代方案可能是让您的表单始终保持最佳状态(form.TopMost = true;)。然后,您可以将透明度颜色设置为与表单相同的颜色(默认情况下为form.TransparencyKey = System.Drawing.SystemColors.Control;)。之后,您可以删除表单的边框(form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;)。

小心不要在其他任何地方使用透明度颜色(如果它包含这种颜色,它将使图像的一部分透明) 确保有办法关闭表单。 (并在需要时移动它。)