1

我需要编写代码来进行屏幕共享,例如 Windows PC 的 WebEx 或 Team Viewer。要求是我没有管理员权限也不能为此安装任何应用程序或软件。我知道以下技术,但它们都不适合我。我已经尝试了此代码项目 URL http://www.codeproject.com/Articles/5051/Various-methods-for-capturing-the-screen的所有示例

(1) GetDC(NULL) 和带有 SRCCOPY <= 的 BitBlt 这将不会捕获透明窗口,它会导致GDI 挂起(只需尝试在 Paint 中绘图.. 当 BitBlt 操作执行时,您的铅笔卡住了一段时间)

(2) GetDC(NULL) 和带有 SRCCOPY 和 CAPTUREBLT 选项的 BitBlt <= 这将在我调用 BitBlt 操作时隐藏光标,并在执行 BitBlt 操作时隐藏GDI Hung

(3) 我还尝试使用 GetFrontBufferData使用DirectX 。这会导致我的透明窗口闪烁

(4) 我尝试使用Windows Media API,但这需要安装 Windows Media Encoder

(5) 我也尝试使用镜像驱动程序,但这需要使用管理员访问权限安装驱动程序。

任何人都可以建议API,在没有任何安装的情况下我可以捕获整个屏幕并且没有闪烁或GDI挂起问题。

提前致谢.....

4

1 回答 1

1

问题是无论你使用什么方法,你都必须连接到系统中(拦截一些操作系统到驱动程序的调用),让系统给你时间安全地进行操作。这需要任何软件以管理模式运行。

以上所有方法都失败了,因为没有足够的权限导致一些内部调用失败。

如果您想一想,如果在用户级别运行 exe 甚至可以共享来自非系统级别用户的系统调用,那么系统可能存在严重的安全漏洞:我只需交付您使用的共享屏幕的应用程序,而您不会注意到.

因此,与其试图欺骗您的公司安全策略,不如询问您的管理员:如果您出于商业目的需要这些软件,他们会做需要做的事情。

于 2013-10-02T10:21:00.857 回答