有没有办法将窗口重定向(渲染)到“内存显示”?

时间:2013-09-06 00:07:18

标签: windows winapi gdi vdi

我想制作一个Windows应用程序,其GUI将流式传输到另一台设备(允许远程控制)。关键是我不愿意依赖创建Windows会话来隔离GUI I / O(1)

为实现这一目标,我开始观察一些现有的解决方案,这些解决方案能够使用此前提启用远程访问,以查看是否可以获得有关从哪里开始的线索。

其中一个解决方案是Winflector(顺便说一下:最多可以连接2个连接)。

我对这个解决方案感兴趣,因为它似乎(我猜)它只检测重新绘制的区域。我从观察中得到的是:

  • 当流式应用程序在我登录的同一会话中“无形地”在本地运行时(它在我的任务管理器中显示应用程序进程),应用程序窗口似乎无法创建 - 至少{{3}无法获取应用程序进程的任何窗口信息/句柄 - 它看起来像是一种“GUI StdOut Redirection”。
  • 显然,没有创建额外的Inspect;
  • 显然,没有安装Desktop;
  • 使用Mirror Driver,我发现Winflector在原始应用程序进程中添加了一些线程。我怀疑它是关于GUI重定向(通过线程的名称);
  • 应用程序由Winflector服务器启动 - 也就是说,它可以控制CreateProcess参数。

在这种情况下最有可能使用的技术是什么?

  • Windows Hook?
  • Windows消息拦截?
  • 特殊显示驱动程序?
  • 排序Process Explorer

我应该从哪里开始研究以获得类似的方法?关于这个主题的任何开源项目也将受到欢迎。

PS:根据我的编程经验,这是一个完整的“新世界” - 如果我的问题多余/明显/无意义,那就很抱歉。

  

(1)也就是说,这个应用程序可以生成,流式传输和交互   远程客户端使用与本地用户相同的会话   已经登录,没有冲突IO(就像普通的VNC一样)   会这样做,例如)。 PS:此刻,我只专注于   的输出

0 个答案:

没有答案