【发布时间】:2009-06-19 17:39:23
【问题描述】:
我需要在虚拟 Xorg 桌面(比如说桌面 #2)上运行一个应用程序,并通过在根桌面(桌面 #1)上运行的另一个应用程序来控制它。这将包括屏幕截图和鼠标移动。所以基本上我从桌面#2 捕获应用程序窗口,将其抓取,然后通过桌面#1 上的应用程序单击按钮。不管怎样,你明白了。
现在我最大的问题是:这可行吗?如果是的话,最好的语言是什么?
顺便说一句,我正在使用 Linux
提前致谢
卢克
【问题讨论】:
我需要在虚拟 Xorg 桌面(比如说桌面 #2)上运行一个应用程序,并通过在根桌面(桌面 #1)上运行的另一个应用程序来控制它。这将包括屏幕截图和鼠标移动。所以基本上我从桌面#2 捕获应用程序窗口,将其抓取,然后通过桌面#1 上的应用程序单击按钮。不管怎样,你明白了。
现在我最大的问题是:这可行吗?如果是的话,最好的语言是什么?
顺便说一句,我正在使用 Linux
提前致谢
卢克
【问题讨论】:
这当然是可行的。 如果你在 linux 上使用 VirtualBox,那么你可以使用远程桌面协议来远程运行和控制虚拟机。
VirtualBox 支持标准远程桌面协议,其中虚拟机可以充当 RDP 服务器,允许您在仅显示 RDP 数据的某个瘦客户端上远程“运行”虚拟机。
希望这会有所帮助。
【讨论】:
从this post 有人提到recording X11 events,这可能会让你半途而废。
【讨论】:
如果您是在谈论文本模式控制台,那就是:http://ace-host.stuart.id.au/russell/files/conspy/
【讨论】:
大多数窗口管理器通过隐藏应用程序来实现桌面管理 不应该显示。
您可以发送 xevents 到应用程序上的按钮。 我怀疑您是否能够捕获应用程序的屏幕内容,因为它不是 映射。
您也许可以在 Xnest 下运行您的应用程序,然后您可以捕获屏幕 内容。但是,根据我的经验,Xnest 在某些情况下无法正确呈现应用程序。
【讨论】:
你可以在你想控制的X服务器上启动x11vnc,然后通过VNC控制它。
或者我认为 X11 可以直接模拟事件。你当然可以抓取窗口的内容。查看xwd 的代码,获取获取窗口位图图像的示例。
【讨论】: