0

我正在设计一个应用程序来通过 Qt 中的 QProcess 使用 vncviewer 访问远程屏幕。(我在远程桌面上使用vino-server)登录到远程屏幕(全屏模式)后,我想断开远程共享并切换回本地屏幕。

有什么Qt方法可以做到吗?

如何通过linux命令行实现这一点?

我正在使用 Linux 操作系统(ubuntu)。

任何想法/建议表示赞赏。

4

1 回答 1

0

我找到了解决这个问题的方法。

考虑到系统处于远程访问状态。要断开它与远程用户的连接,只需停止 vnc 服务器,然后在需要时重新启动它或使用计时器,几秒钟后重新启动它。这将断开远程用户与服务器的连接。

使用命令行,它可以完成如下:

  1. 要停止 VNC 服务器,请打开终端并键入以下命令:

     $ gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled false
    
  2. 要启动 VNC 服务器,请打开终端并键入以下命令:

     $ gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true
    

通过创建两个 bash shell 脚本可以更加简化:

启动vnc.sh

    #!/bin/bash
    #
    # This script starts enables System -> Preferences -> Remote Desktop

    gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true</pre>

停止vnc.sh

    #!/bin/bash
    #
    # This script starts enables System -&gt; Preferences -&gt; 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 可以很容易地实现。

于 2012-11-07T08:59:00.597 回答