1. 程式人生 > >在Linux中使用Python模擬鍵盤按鍵

在Linux中使用Python模擬鍵盤按鍵

之前在做自動化測試中需要用Python在linux中模擬Ctrl+V 進行路徑貼上,試了很多種方法,起初用了xerox和pyperclip這兩個python庫,但開啟對話方塊後呼叫貼上API無法進行貼上,不知道為什麼。

然後發現了virtkey這個庫,這個庫可以在linux 中模擬鍵盤按鍵,但網上資料甚少。這個庫主要有兩個API

1、press_keysym/release_keysym
2、press_unicode/release_unicode

第一個接受keysym作為引數,第二個接受鍵盤的unicode,鍵盤unicode用來模擬字母鍵還是很方便的,但要模擬Ctrl這樣的鍵一直沒找到方法,最終找到了一個關於keysym的表,解決了問題,表如下

.keysym

.keycode

.keysym_num

Key

Alt_L

64

65513

左手邊的Alt鍵

Alt_R

113

65514

右手邊的Alt鍵

BackSpace

22

65288

BackSpace

Cancel

110

65387

Pause Break

Caps_Lock

66

65549

CapsLock

Control_L

37

65507

左手邊的Control鍵

Control_R

109

65508

右手邊的Control鍵

Delete

107

65535

Delete

Down

104

65364

方向鍵:下

End

103

65367

End

Escape

9

65307

Esc

Execute

111

65378

系統呼叫

F1

67

65470

F1

F2

68

65471

F2

Fi

66+i

65469+i

Fi

F12

96

68481

F12

Home

97

65360

Home

Insert

106

65379

Insert

Left

100

65361

方向鍵:左

Linefeed

54

106

Linefeed(Ctrl-j)

KP_0

90

65438

數字鍵:0

KP_1

87

65436

數字鍵:1

KP_2

88

65433

數字鍵:2

KP_3

89

65435

數字鍵:3

KP_4

83

65430

數字鍵:4

KP_5

84

65437

數字鍵:5

KP_6

85

65432

數字鍵:6

KP_7

79

65429

數字鍵:7

KP_8

80

65431

數字鍵:8

KP_9

81

65434

數字鍵:9

KP_Add

86

65451

運算鍵:+

KP_Begin

84

65437

小鍵盤:5號鍵

KP_Decimal

91

65439

“.”鍵

KP_Delete

91

65439

Delete

KP_Divide

112

65455

“/”鍵

KP_Down

88

65433

方向鍵:下

KP_End

87

65436

End

KP_Enter

108

65421

Enter

KP_Home

79

65429

Home

KP_Insert

90

65438

Insert

KP_Left

83

65430

方向鍵:左

KP_Multiply

63

65450

運算鍵:*

KP_Next

89

65435

PageDown

KP_Prior

81

65434

PageUp

KP_Right

85

65432

方向鍵:右

KP_Subtract

82

65453

“-”鍵

KP_Up

80

65431

方向鍵:上

Next

105

65366

PageDown

Num_Lock

77

65407

NumLock

Pause

110

65299

Pause

Print

111

65377

PrintScreen

Prior

99

65365

PageUp

Return

36

65293

回車鍵

Right

102

65363

方向鍵:右

Scroll_Lock

78

65300

ScrollLock

Shift_L

50

65505

左手邊的Shift鍵

Shift_R

62

65506

有手邊的Shift鍵

Tab

23

65289

Tab

Up

98

65362

方向鍵:上

至此,我們可以寫出模擬Ctrl+V的程式碼

import virtkey
import time


v = virtkey.virtkey()
v.press_keysym(65507) #Ctrl鍵位
v.press_unicode(ord('v')) #模擬字母V
v.release_unicode(ord('v'))
v.release_keysym(65507)
time.sleep(5)
v.press_keysym(65421) #Enter
v.release_keysym(65421)

相關推薦

Linux使用Python模擬鍵盤按鍵

之前在做自動化測試中需要用Python在linux中模擬Ctrl+V 進行路徑貼上,試了很多種方法,起初用了xerox和pyperclip這兩個python庫,但開啟對話方塊後呼叫貼上API無法進行貼上,不知道為什麼。 然後發現了virtkey這個庫,這個庫可以在lin

UI自動化測試(四)AutoIT工具使用和robot對象模擬鍵盤按鍵操作

rop 並保存 cto 右鍵 自動化測試 nqa files 安裝 存在 AutoIT簡介 AutoIt 目前最新是v3版本,這是一個使用類似BASIC腳本語言的免費軟件,它設計用於Windows GUI(圖形用戶界面)中進行自動化操作。它利用模擬鍵盤按鍵,鼠標移動和窗口/

C#窗體如何通過keybd_event()函式模擬鍵盤按鍵(組合鍵)產生事件

如何模擬鍵盤按鍵觸發產生的事件,比如模擬按下Alt + F4 關閉當前程式,Ctrl+Shift 切換輸入法等 可以通過win32api 鍵盤事件 keybd_event() 來實現 1、定義鍵盤按鍵對應得鍵碼 #region bVk引數 常量定義

解決Oracle缺少動態連結庫cannot open shared object file: No such file o;解決 Linuxpython指令碼執行無問題,配置crontab定時任務報錯

注:該問題的本質是:缺少動態連結庫 20181030更: 在另一臺伺服器再次遇到類似的問題,也是直接執行python指令碼無問題,在crontab中報錯: ImportError: libclntsh.so.11.1: cannot open shared ob

【QTP】使用SendKeys來模擬鍵盤按鍵

在測試的過程中,經常會遇到這樣的情況: 1.    需要使用到一些按鍵的操作,如按Enter,F1什麼的情況; 2.    需要模擬組合鍵的情況,如按Ctrl+A什麼的; 3.    需要無法識別的控制元件中輸入一些東西。 在這時候就可以使用SendKeys來進行模擬按鍵的

python 模擬鍵盤滑鼠輸入

最近需要模擬鍵盤滑鼠的輸入,一番查詢之後,得到的一些結果 ***********************************************************************************************************

LinuxPython安裝與配置(CentOS-6.5:Python-2.7.6)

1 Python簡介     Python(英語發音:/?pa?θ?n/), 是一種面向物件、解釋型計算機程式設計語言,由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年。Python語法簡潔而清晰,具有豐富和強大的類庫。它常被暱稱為膠水

python模擬鍵盤輸入

import win32api import win32con win32api.keybd_event(17,0,0,0)  #ctrl鍵位碼是17 win32api.keybd_event(86,0,0,0)  #v鍵位碼是86 win32api.keybd_even

Qt模擬鍵盤按鍵按下

定義一個鍵盤事件,然後 傳送 到目標即可:QKeyEvent keyEvent(QEvent::KeyPress, Qt::Key_F1, *, *, *, *);QApplication::sendEvent(object, &keyEvent); QKeySeq

C語言實現模擬鍵盤按鍵事件

#include <stdio.h> #include <windows.h> #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0) #define K

JAVA模擬鍵盤按鍵測試類

package src;import java.awt.Robot;import java.awt.event.KeyEvent; public class KeyPressTest {  public static void main(String[] args) {  R

Python模擬電腦按鍵

按鍵精靈是一個很好的Windows按鍵模擬器,下面用python簡單地實現所需要的功能。 下面提供兩種方式,第一種一種是簡單模擬。發的是虛擬訊息給程式的訊息佇列,但是有些軟體比如360和一些遊戲大部分都是直接和硬體通訊(為了即時)使用drixt提供的介面,不能

python 模擬windows鍵盤按鍵的封裝

http 單個 one finish ron get 組合鍵 clipboard version 代碼:在執行的時候,把光標放在指定的地方,在此例中,點擊運行後把光標放到結果區域,粘貼的時候是粘貼到光標所在的問題,如過是運行腳本在web元素輸入框中輸入的話,不能移動光標

Linux C讀取/dev/input/event裝置來判斷鍵盤按鍵是否按下

code: #include <stdio.h> #include <linux/input.h> #include <stdlib.h> #include <sys/types.h> #include <sys/sta

LINUX 2.6 python 2.7 版本升級 mark 備註

linux update_ python easy:首先下載源tar包  可利用linux自帶下載工具wget下載,如下所示:1# wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz   下載完成後到下載目錄下,解壓1tar -zx

PythonLinux和Windowspython的差異

() 問題 選項 警告 gpo lin 私有屬性 調試 bsp 慢慢寫... --------------------------------------------------------------------------------------------------

Delphi如何實現模擬組合按鍵,如發送Ctrl+F的按鍵

action rtu parent tee log list popup blog 一個 利用 keybd_event函數可實現,如下面的代碼用以實現在一個公共菜單中模擬Ctrl_F按鈕以調用DBGridEH的查找對話框功能:這是在一個ActionList中的某一Actio

python獲取linuxtop信息

python獲取linux中top信息import os,time,sysimport paramiko,pexpect 獲取日期格式: def get_year_mon_day_hour_min_sec(): time_array = time.localtime() result= "%s

Python模擬Linux的Crontab, 寫個任務計劃需求

cront tst 擴展 sin bec gre etime aps ron Python模擬Linux的Crontab, 寫個任務計劃需求 來具體點    需求: 執行一個程序, 程序一直是運行狀態, 這裏假設是一個函數 當程序運行30s

python 模擬casio復數計算器【施工

定義 cas 處理 施工 取模 你會 運算 問題 數字 1. 前期準備 對於括號有這樣的規則: ——只有( 可以多於) 的個數,此時在行尾補) 。 ——取模|...|不能嵌套。(在casio中沒有這個問題,因為每按一次取模鍵,你會得到兩個|,所以可以定義他們的大小) 計