我正在使用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)
答案 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')