首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用x11vnc创建单窗口vnc会话?

如何使用x11vnc创建单窗口vnc会话?
EN

Stack Overflow用户
提问于 2015-11-27 16:30:29
回答 4查看 4.3K关注 0票数 3

我想创建一个VNC会话来公开我在虚拟显示器上启动的单个应用程序。我想用x11vnc做这件事,因为之后我可以通过noVNC公开它。

问题是x11vnc允许我创建一个虚拟显示:

代码语言:javascript
复制
x11vnc -create

..。或者公开已经启动的应用程序的单个窗口

代码语言:javascript
复制
x11vnc -id 0x200002

但我没有找到在新的虚拟显示中启动新应用程序的任何选项(比如vncserver的xstartup )。

EN

回答 4

Stack Overflow用户

发布于 2015-11-27 16:30:29

到目前为止,我找到的唯一解决方案是手动完成所有的过程

代码语言:javascript
复制
# create a virtual display on the compute node
Xvnc :33 &

# launch the application on this virtual display
export DISPLAY=:33
glxgears &

# find out its window id
xwininfo -root -children

# -> xwininfo: Window id: 0xdc (the root window) (has no name)
#
#  Root window id: 0xdc (the root window) (has no name)
#  Parent window id: 0x0 (none)
#     1 child:
#     0x200002 "glxgears": ()  300x300+0+0  +0+0

# start the vnc server with this specifix xid
x11vnc -id 0x200002 &

它可以工作,但它有点复杂,我仍然需要编写一个小命令来自动获取xid。

票数 5
EN

Stack Overflow用户

发布于 2017-11-11 04:50:12

我没有足够的“名气”来写评论,所以我不得不写我自己的答案,尽管这只是Michael的答案的一个修改,我还没有测试过。我想了一个快速的方法来获取窗口ID,因为我不能手动输入它。尝试执行以下操作以找出窗口ID:

代码语言:javascript
复制
window_id=$(xwininfo -root -tree | grep glxgears | tail -n1 | sed "s/^[ \t]*//" | cut -d ' ' -f1)

所以你得到了树,过滤了你正在寻找的程序,得到了最后一个选项,删除了尾随的空格,然后只得到了第一列,并保存了它。然后你就可以跑了。

代码语言:javascript
复制
x11vnc -id $window_id &

...to的效果与迈克尔的答案相同。但愿能去。就像我说的,这是个黑客。

票数 1
EN

Stack Overflow用户

发布于 2019-11-14 01:13:05

在办公室共享窗口的好方法!

代码语言:javascript
复制
echo "Select Window...";x11vnc -id $(xwininfo|grep -oP '(?<=id: ).*(?= ")') -viewonly -forever

或者一个更短的:

代码语言:javascript
复制
x11vnc -id pick -viewonly -forever
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33953153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档