在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 |
|
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;解決 Linux中python指令碼執行無問題,配置crontab定時任務報錯
注:該問題的本質是:缺少動態連結庫 20181030更: 在另一臺伺服器再次遇到類似的問題,也是直接執行python指令碼無問題,在crontab中報錯: ImportError: libclntsh.so.11.1: cannot open shared ob
【QTP】使用SendKeys來模擬鍵盤按鍵
在測試的過程中,經常會遇到這樣的情況: 1. 需要使用到一些按鍵的操作,如按Enter,F1什麼的情況; 2. 需要模擬組合鍵的情況,如按Ctrl+A什麼的; 3. 需要無法識別的控制元件中輸入一些東西。 在這時候就可以使用SendKeys來進行模擬按鍵的
python 模擬鍵盤滑鼠輸入
最近需要模擬鍵盤滑鼠的輸入,一番查詢之後,得到的一些結果 ***********************************************************************************************************
Linux中Python安裝與配置(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
【Python】Linux和Windows中python的差異
() 問題 選項 警告 gpo lin 私有屬性 調試 bsp 慢慢寫... --------------------------------------------------------------------------------------------------
Delphi中如何實現模擬組合按鍵,如發送Ctrl+F的按鍵
action rtu parent tee log list popup blog 一個 利用 keybd_event函數可實現,如下面的代碼用以實現在一個公共菜單中模擬Ctrl_F按鈕以調用DBGridEH的查找對話框功能:這是在一個ActionList中的某一Actio
python獲取linux中top信息
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中沒有這個問題,因為每按一次取模鍵,你會得到兩個|,所以可以定義他們的大小) 計