2016-02-12 74 views

回答

0

所以,這裏是我的最終解決方案(基於以前的答案和使用python-uinput)。它使用鍵入Unicode符號的功能,方法是按Ctrl + Shift + U,然後鍵入符號的十六進制代碼。

下面是Python腳本,我寫它:

進口uinput,時間

allKeys = [uinput.KEY_LEFTSHIFT, uinput.KEY_LEFTCTRL, uinput.KEY_SPACE, uinput.KEY_U, 
      uinput.KEY_A, uinput.KEY_B, uinput.KEY_C, uinput.KEY_D, 
      uinput.KEY_E, uinput.KEY_F, uinput.KEY_0, uinput.KEY_1, 
      uinput.KEY_2, uinput.KEY_3, uinput.KEY_4, uinput.KEY_5, 
      uinput.KEY_6, uinput.KEY_7, uinput.KEY_8, uinput.KEY_9] 

device = uinput.Device(allKeys) 

sleepInterval = 0.003 

def printChar(charCode): 
    time.sleep(sleepInterval) 
    device.emit(uinput.KEY_LEFTSHIFT, 1); 
    device.emit(uinput.KEY_LEFTCTRL, 1); 
    device.emit_click(uinput.KEY_U); 
    device.emit(uinput.KEY_LEFTSHIFT, 0); 
    device.emit(uinput.KEY_LEFTCTRL, 0); 
    time.sleep(sleepInterval) 

    for symbol in charCode: 
    device.emit_click(uinput._chars_to_events(symbol)[0]); 
    time.sleep(sleepInterval) 

    device.emit_click(uinput.KEY_SPACE); 
    time.sleep(sleepInterval) 

charString = "string that will be typed" 
for char in charString: 
    printChar('{:04x}'.format(ord(char))) 
1

您可能想看看未輸入。它允許您通過/ dev/uinput設備註入擊鍵,按鈕,鼠標移動,操縱桿移動等。

在Python中,你會做這樣的事情:

keys = [uinput.KEY_X, uinput.KEY_Y, uinput.KEY_Z] 
device = uinput.Device(keys) 

... 

# Simulate key Y being pressed. 
device.emit(uinput.KEY_Y, 1) 

你需要得到uinput,當然:

pip install python-uinput 

而且你可能需要安裝uinput設備,如果你不沒有。 (好吧,這只是Linux的解決方案,我懷疑,不幸的是,我沒有問你的平臺是什麼)。

相關問題