Python vncdotool发送特殊字符

时间:2016-03-05 04:25:11

标签: python vps vnc

我正在使用vncdotool。当我在下面测试以下代码时,会变成; ,我无法弄清楚它为什么会这样做。此外,当我尝试发送时,它将发送`。任何帮助,将不胜感激。谢谢。

import vncdotool
from vncdotool import api

def sendKeys(client, keys):
  for k in keys:
    client.keyPress(k)

hostport = 'XXX.XXX.XXX.XXX::XXXX'
password = 'XXXXXXXXX'

client = api.connect(hostport, password)

command = 'add-apt-repository ppa:nilarimogard/webupd8'
sendKeys(client, command)

command = 'cd ~/myfolder/'
sendKeys(client, command)

2 个答案:

答案 0 :(得分:1)

特殊字符一直是vncdotool中的一个问题。快速而肮脏的解决方案是使用--force-caps。交换机发送<shift>-char而不是普通char。从API可以执行与

类似的操作
client = api.connect()
client.factory.force_caps = True

这并不理想,但没有深入调查为什么有些服务器没有按预期处理特殊字符,似乎可以完成工作。

答案 1 :(得分:0)

我明白了。我不得不使用shift来发送这些字符。希望这有助于某人。

def sendSpecialKeys(client, keys):
  client.keyDown('shift')
  sendKeys(client, keys)
  client.keyUp('shift')