我有一个截屏程序。它在主线程中工作正常。但我需要在工作线程中做到这一点。所以当调用GetDc时我得到ERROR_ACCESS_DENIED。我用GetLastError检查错误。这个错误我只在Windows XP机器上得到。 Windows Vista和7中的测试工作正常。测试程序是带有主窗体的简单GUI(因此它不是控制台程序)。用于从http客户端接收命令的线程。所以这个程序实际上是http服务器。
抱歉,我发现问题出在其他地方。跑步测试不一样。在XP上,我使用了远程桌面,但在其他Windows上,我运行的程序通常是普通用户。因此,当应用程序在后台运行或从远程桌面运行时,问题是访问桌面。当使用远程dekstop运行应用程序时,我必须了解如何访问桌面。