【问题标题】:.NET draw over fullscreen games.NET 绘制全屏游戏
【发布时间】:2012-12-29 15:49:17
【问题描述】:

现在我可以在游戏上绘图,但前提是它们处于窗口模式,我只是在 TopMost 表单上绘图并将其设置为可点击:

//C++ .NET 4
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    int initialStyle = GetWindowLong(this->Handle, -20);
    SetWindowLong(this->Handle, -20, initialStyle | 0x80000 | 0x20);
}

但如果游戏全屏运行,我就无法做到这一点:(

我可以用全屏游戏做点什么吗? (如果可能,使用 C++)

【问题讨论】:

  • 扪心自问:有人要做什么才能在你的画上作画...

标签: .net winapi c++-cli


【解决方案1】:

你就是不能(至少那样)。当游戏进入全屏模式时,它们通常使用对 DirectX 或 OpenGL 的低级调用来执行此操作,这将禁用 Windows 桌面的所有窗口逻辑。然后游戏直接绘制到图形设备的帧缓冲区中,图形驱动程序将在屏幕上显示此内容 - 完全绕过窗口。

要真正“超越”它,您可以忘记所有类型的 WinForms/MFC 调用,但您必须查看允许您操作帧缓冲区的低级驱动程序调用(尽管我怀疑您可以从外部进程)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多