【发布时间】:2012-11-02 09:33:15
【问题描述】:
我正在设计一个应用程序来通过 Qt 中的 QProcess 使用 vncviewer 访问远程屏幕。 (我在远程桌面使用vino-server) 登录远程屏幕(全屏模式)后,我想断开远程共享并切换回本地屏幕。
有什么Qt方法可以做到吗?
如何通过linux命令行来实现??
我正在使用 Linux 操作系统 (ubuntu)。
感谢任何想法/建议。
【问题讨论】:
标签: c++ linux qt remote-access
我正在设计一个应用程序来通过 Qt 中的 QProcess 使用 vncviewer 访问远程屏幕。 (我在远程桌面使用vino-server) 登录远程屏幕(全屏模式)后,我想断开远程共享并切换回本地屏幕。
有什么Qt方法可以做到吗?
如何通过linux命令行来实现??
我正在使用 Linux 操作系统 (ubuntu)。
感谢任何想法/建议。
【问题讨论】:
标签: c++ linux qt remote-access
我找到了解决此问题的方法。
考虑到系统处于远程访问状态。要断开它与远程用户的连接,只需停止 vnc 服务器,然后在需要时重新启动它或使用计时器,几秒钟后重新启动它。这将断开远程用户与服务器的连接。
使用命令行,可以如下完成:
停止 VNC 服务器 打开终端并输入以下命令:
$ gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled false
启动 VNC 服务器 打开终端并输入以下命令:
$ gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true
通过创建两个 bash shell 脚本可以更简化:
startvnc.sh
#!/bin/bash
#
# This script starts enables System -> Preferences -> Remote Desktop
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true</pre>
stopvnc.sh
#!/bin/bash
#
# This script starts enables System -> Preferences -> Remote Desktop
gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled false</pre>
创建这些脚本后,使用以下命令使它们可执行:
$ chmod +x startvnc.sh
$ chmod +x stopvnc.sh
如果需要,为它们设置别名。在文本编辑器中打开 ~/.bashrc,滚动到底部,然后输入以下两行:
alias startvnc=/path/to/your/startvnc.sh
alias stopvnc=/path/to/your/stopvnc.sh</pre>
现在,当您通过 SSH 进入您的盒子(或打开命令行)时,您只需键入
$ startvnc
[启用远程桌面],或
$ stopvnc
[禁用远程桌面]。
现在,在 Qt 中,使用 QProcess 可以很容易地实现。
【讨论】: