仅限linux :我想为我的应用程序打开两个窗口,一个在计算机的主屏幕上,另一个在仅供远程桌面访问的虚拟X11会话上。X11专家能告诉我这是怎么做到的吗?
发布于 2009-05-31 03:50:16
我对这个问题有点不清楚,但这里有一个假设的设置:
我坐在我的计算机上(我们称之为根会话),我有一个shell。在本例中,有一个值为"127.0.0.1:0.0“的环境变量DISPLAY。
启动第二个会话。您需要知道这台机器上的display变量是什么。如果它也在本地主机上,它可能类似于"127.0.0.1:1.0“。如果你在另一台主机上执行"echo $DISPLAY“,它会告诉你这一点。如果它报告":1.0“或没有"127.0.0.1”的内容,这是可以的。如果未指定地址,则隐含localhost。
接下来,在返回到根会话之前,您需要运行"xhost“以允许其他源在此主机上显示窗口。(免责声明:我要告诉您的是非常不安全的,所以如果您在不安全的网络上,您可能需要阅读xhost的手册页)。在另一个屏幕上的xterm中键入"xhost +“。此命令(特别是"+“选项)允许任何主机在此显示器上弹出窗口。
那么你所要做的就是返回到你的根会话外壳,运行"export“127.0.0.1:1.0”,然后运行“DISPLAY=”,在另一个会话中弹出窗口。
我希望这能帮到你。
如果有任何不清楚的地方,您可以搜索"X windows DISPLAY variable“。
发布于 2009-05-31 03:50:28
这取决于您的编程级别--如果您直接调用Xlib,我想您应该知道XCreateWindow
的第一个参数是一个Display *
,当然,这也是您告诉X11在哪里创建窗口的方式。http://tronche.com/gui/x/xlib/window/XCreateWindow.html获取详细信息,以备不时之需。
如果您使用的是其他语言/框架/等,如果您提到它们是哪些语言/框架/等,将会有所帮助。
发布于 2009-05-31 03:50:40
您需要像这样设置DISPLAY环境变量:
DISPLAY=host:0.0
有关更多详细信息,请参阅X manpage。
https://stackoverflow.com/questions/931198
复制相似问题