gpt4 book ai didi

c# - 全屏 DirectX 覆盖?是的..又是C#

转载 作者:IT老高 更新时间:2023-10-28 22:22:33 28 4
gpt4 key购买 nike

看起来这个问题在不同的环境中被问过多次,我在为游戏制作叠加层方面取得了一些进展(这是用于信息数据等)。我还想让它像 Steam 和 XFire 一样可交互。

我设法在窗口模式下获得了一个 Directx 游戏的叠加层......有点。

我查看了所有堆栈溢出和谷歌,但运气不佳。

如果需要,我可以在 C++ 而不是 C# 中尝试这个。我知道 C#,但无论如何我都不认为自己是专业人士。只是需要一个更好的解释。哎呀,如果我能正常工作,我愿意制作一个不错的截屏视频/教程。

注意:我真的很想用 native 代码而不是库来做到这一点,但是如果那里有一个好的免费库,我想去看看。

例子: How to overlay graphics on Windows games?

http://www.gamedev.net/community/forums/topic.asp?topic%5Fid=359794

C# "Lock" an overlay form to the position of another window

更多信息:我确实设法获得了一个 Windows 窗体来覆盖一个游戏窗口,并使用 SetParent 将其父级设置为那个。然而,这并不能很好地工作,因为它根本不能在全屏模式下工作,而且透明度也不起作用。 (基本上有一个透明度键,并且 TopMost 设置为 TRUE。)我真的很想找到一种不同的方法。

最佳答案

几年前我在德尔福做过这个。当时唯一的选择是将 native Win32 DLL 注入(inject)进程中,该进程将调用我的 DLL DirectDraw 函数,而我会将其余部分代理给真正的 DirectDraw。这是我可以保证它会在程序全屏切换到/从窗口切换时工作的唯一方法。我的 DLL 将创建一个内存中的共享文件空间来在它和我的程序之间进行通信。

我这样做的原因是为了在游戏中写出用 TeamSpeak 或 Ventrilo 说话的人。

但是,此方法不适用于 CLR 运行时对象。您唯一的选择是查看 C++ Native DLL Injectrion/Wrapping。

关于c# - 全屏 DirectX 覆盖?是的..又是C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3549004/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com