【发布时间】:2012-06-22 15:12:03
【问题描述】:
我想通过第三方应用程序(这不是我的游戏)读取游戏(例如 OpenGL 或 DirectX)中给定位置的像素颜色。
我尝试在 C# 中使用它,该代码非常适合读取桌面、窗口等的颜色,但是当我启动游戏时,我只得到 #000000,一个黑色像素。我认为这是因为我没有在正确的“位置”或类似的地方阅读。
有人知道怎么做吗?我提到了 C#,但 C/C++ 也可以。
【问题讨论】:
-
您现在如何阅读颜色/您使用什么方法?因为我在使用 Windows 的放大镜辅助工具时遇到了类似的问题,桌面和其他窗口可以正确显示,但是任何绕过 Windows API 并直接绘制到屏幕上的东西(即大多数游戏)都会显示为空白/黑色。或者更确切地说,任何直接绘制到叠加层的东西,如果这是正确的术语的话。
-
哦,我们开始;我没有解决方案,但我很确定我找到了你的问题。 en.wikipedia.org/wiki/Hardware_overlay “由于使用了硬件覆盖,屏幕截图程序(例如,当用户按下 PrtSc 键时自动内置到 Windows 中的程序)通常不会捕获出现在硬件覆盖窗口中的内容。相反,捕获仅包含特殊蒙版颜色的空白区域。”所以你可能需要研究 DirectX 和 OpenGL,看看它们有哪些可用的方法。
标签: opengl colors directx screen