如何创建全屏应用程序的叠加层

时间:2014-03-05 03:59:29

标签: vb.net optimization overlay

所以我试图为全屏游戏制作叠加层。首先这不是出于黑客攻击的目的,游戏显示时间很少,我发现这很难阅读,所以当我按下一个键激活一些东西时,我希望能够看到多久以前我激活它等等。

我目前有这段代码将时间写到屏幕上:

 Private Shared Sub DrawOverlay(ByVal OverlayString As String)
    Dim Processes = Process.GetProcessesByName("GAMECLIENT")
    Dim deviceContext As Graphics = Graphics.FromHwnd(Processes(0).MainWindowHandle)

    Dim drawFont As New Font("Arial", 14, FontStyle.Bold)
    Dim myBrush As New Drawing2D.LinearGradientBrush(deviceContext.ClipBounds, Color.Black, Color.SkyBlue, Drawing2D.LinearGradientMode.Horizontal)
    Dim drawFormat As New StringFormat()
    drawFormat.FormatFlags = StringFormatFlags.NoFontFallback

    deviceContext.DrawString(OverlayString, drawFont, myBrush, 100, 100, drawFormat)
End Sub

要清楚这段代码不是我的。这正是我从研究中发现的。这可行,但它非常慢。它实际上使游戏免费约5秒。我认为耗时的行是:

deviceContext.DrawString(OverlayString, drawFont, myBrush, 100, 100, drawFormat)

通过与其他线路玩耍的过程,这条线似乎几乎是挑衅。但是我无法弄清楚如何加快速度。我甚至发布了应用程序,以防它是调试器。没有不同。然而,如果有人能够解释为什么这可能会帮助我,那么这对于全屏来说并不适用,这是不理想的。

在相关的说明中,如果有人拥有/知道一个DLL,我可以参考这个快速而有效地执行此操作(特别是全屏),这将非常棒!

总结一下: 1)为什么这条线太慢了 2)我应该如何加快速度 3)有没有其他方法可以全屏工作。

谢谢!

0 个答案:

没有答案