python中模擬鍵盤按鍵和鼠標按鍵

目錄

0.作用和需安裝庫

1.模擬鍵盤按鍵

2.虛擬鍵表

3.模擬鼠標


0.作用和需安裝庫

作用:用程序實現達到按下鍵盤按鍵的作用,或者按下鼠標,無需真正按鍵盤或者鼠標。

需要安裝pywin32這個庫

pip install pywin32

1.模擬鍵盤按鍵

例子1:單個鍵

import win32con
import win32api
import time# 單個鍵
# 第一個參數,鍵盤對應數字,查看《鍵盤虛擬鍵值編碼表》
# 第二個和第四個沒用
# 第三個,0 代表按下,win32con.KEYEVENTF_KEYUP 代表松開
win32api.keybd_event(91, 0, 0, 0)  # 鍵盤按下
time.sleep(0.1)
win32api.keybd_event(91, 0, win32con.KEYEVENTF_KEYUP, 0)  # 鍵盤松開 # 打開 win

例子2:組合鍵 win + D

import win32con
import win32api
import time# 組合鍵 win + D
win32api.keybd_event(91, 0, 0, 0)  # 鍵盤按下
win32api.keybd_event(68, 0, 0, 0)  # 鍵盤按下
time.sleep(0.1)
win32api.keybd_event(91, 0, win32con.KEYEVENTF_KEYUP, 0)  # 鍵盤松開
win32api.keybd_event(68, 0, win32con.KEYEVENTF_KEYUP, 0)  # 鍵盤松開

例子3:屏幕一閃一閃亮晶晶

import win32con
import win32api
import time# 屏幕一閃一閃亮晶晶
count = 0
while True:count += 1win32api.keybd_event(91, 0, 0, 0)win32api.keybd_event(68, 0, 0, 0)time.sleep(0.1)win32api.keybd_event(91, 0, win32con.KEYEVENTF_KEYUP, 0)win32api.keybd_event(68, 0, win32con.KEYEVENTF_KEYUP, 0)if count > 10:break

2.鍵盤虛擬鍵值編碼表

虛擬鍵碼

對應值

對應鍵

VK_LBUTTON

1

鼠標左鍵

VK_RBUTTON

2

鼠標右鍵

VK_CANCEL

3

Cancel

VK_MBUTTON

4

鼠標中鍵

VK_XBUTTON1

5

鼠標后退鍵

VK_XBUTTON2

6

鼠標前進鍵

VK_BACK

8

Backspace

VK_TAB

9

Tab

VK_CLEAR

12

Clear

VK_RETURN

13

Enter

VK_SHIFT

16

Shift

VK_CONTROL

17

Ctrl

VK_MENU

18

Alt

VK_PAUSE

19

Pause

VK_CAPITAL

20

Caps Lock

VK_KANA

21

-

VK_HANGUL

21

VK_JUNJA

23

VK_FINAL

24

VK_HANJA

25

VK_KANJI

25*

VK_ESCAPE

27

Esc

VK_CONVERT

28

-

VK_NONCONVERT

29

VK_ACCEPT

30

VK_MODECHANGE

31

VK_SPACE

32

Space

VK_PRIOR

33

Page Up

VK_NEXT

34

Page Down

VK_END

35

End

VK_HOME

36

Home

VK_LEFT

37

Left Arrow

VK_UP

38

Up Arrow

VK_RIGHT

39

Right Arrow

VK_DOWN

40

Down Arrow

VK_SELECT

41

Select

VK_PRINT

42

Print

VK_EXECUTE

43

Execute

VK_SNAPSHOT

44

Snapshot

VK_INSERT

45

Insert

VK_DELETE

46

Delete

VK_HELP

47

Help

-

48

0

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

VK_LWIN

91

左WIN鍵

VK_RWIN

92

右WIN鍵

VK_APPS

93

應用程序鍵

VK_SLEEP

95

睡眠鍵

VK_NUMPAD0

96

小鍵盤 0

VK_NUMPAD1

97

小鍵盤 1

VK_NUMPAD2

98

小鍵盤 2

VK_NUMPAD3

99

小鍵盤 3

VK_NUMPAD4

100

小鍵盤 4

VK_NUMPAD5

101

小鍵盤 5

VK_NUMPAD6

102

小鍵盤 6

VK_NUMPAD7

103

小鍵盤 7

VK_NUMPAD8

104

小鍵盤 8

VK_NUMPAD9

105

小鍵盤 9

VK_MULTIPLY

106

小鍵盤 *

VK_ADD

107

小鍵盤 +

VK_SEPARATOR

108

小鍵盤 Enter

VK_SUBTRACT

109

小鍵盤 -

VK_DECIMAL

110

小鍵盤 .

VK_DIVIDE

111

小鍵盤 /

VK_F1

112

F1

VK_F2

113

F2

VK_F3

114

F3

VK_F4

115

F4

VK_F5

116

F5

VK_F6

117

F6

VK_F7

118

F7

VK_F8

119

F8

VK_F9

120

F9

VK_F10

121

F10

VK_F11

122

F11

VK_F12

123

F12

VK_F13

124

-

VK_F14

125

VK_F15

126

VK_F16

127

VK_F17

128

VK_F18

129

VK_F19

130

VK_F20

131

VK_F21

132

VK_F22

133

VK_F23

134

VK_F24

135

VK_NUMLOCK

144

Num Lock

VK_SCROLL

145

Scroll

VK_LSHIFT

160

左shift

VK_RSHIFT

161

右shift

VK_LCONTROL

162

-

VK_RCONTROL

163

VK_LMENU

164

VK_RMENU

165

VK_BROWSER_BACK

166

VK_BROWSER_FORWARD

167

VK_BROWSER_REFRESH

168

VK_BROWSER_STOP

169

VK_BROWSER_SEARCH

170

VK_BROWSER_FAVORITES

171

VK_BROWSER_HOME

172

VK_VOLUME_MUTE

173

VolumeMute

VK_VOLUME_DOWN

174

VolumeDown

VK_VOLUME_UP

175

VolumeUp

VK_MEDIA_NEXT_TRACK

176

-

VK_MEDIA_PREV_TRACK

177

VK_MEDIA_STOP

178

VK_MEDIA_PLAY_PAUSE

179

VK_LAUNCH_MAIL

180

VK_LAUNCH_MEDIA_SELECT

181

VK_LAUNCH_APP1

182

VK_LAUNCH_APP2

183

VK_OEM_1

186

; :

VK_OEM_PLUS

187

= +

VK_OEM_COMMA

188

,

VK_OEM_MINUS

189

- _

VK_OEM_PERIOD

190

.

VK_OEM_2

191

/ ?

VK_OEM_3

192

` ~

VK_OEM_4

219

[ {

VK_OEM_5

220

\ |

VK_OEM_6

221

] }

VK_OEM_7

222

' "

VK_OEM_8

223

-

VK_OEM_102

226

VK_PACKET

231

VK_PROCESSKEY

229

VK_ATTN

246

VK_CRSEL

247

VK_EXSEL

248

VK_EREOF

249

VK_PLAY

250

VK_ZOOM

251

VK_NONAME

252

VK_PA1

253

VK_OEM_CLEAR

254

3.模擬鼠標

import win32con
import win32api
import timewin32api.SetCursorPos([30, 30])  # 設置鼠標位置
time.sleep(0.1)# 兩次鼠標左鍵 = 雙擊
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)  
# 鼠標左鍵 # 剩下四個參數都設定為 0
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
time.sleep(0.1)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)# 一次鼠標右鍵
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)  
# 右鍵 RIGHT # 中鍵是 MIDDLE
win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)

end

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15358.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15358.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15358.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Mac OS下編寫第一個Flask代碼

在電腦上已經安裝了Homebrew,在Homebrew里已經安裝了Python。 創建一個新的Flask應用。這里發生了幾件事: 創建虛擬環境: 你使用python3 -m venv flask創建了一個名為flask的虛擬環境。激活虛擬環境: 通過運行source flask/bin/ac…

chatgpt線性差值 將直線漸變顏色

color(x)(x-x1)/(x2-x1) 與gpt給出的 這個位置比例可以表示為d/L是概念相同 x-x1是計算當前點距離起點距離,x2-x1是計算長度 例如,如果我們在直線上距離起點A的距離為d,整條直線的長度為L 用數學方式解釋 2024/5/25 18:54:30 當我們要在一…

vue+echart :點擊趨勢圖中的某一點或是柱狀圖,出現彈窗,并傳輸數據

樣式 在趨勢圖中點擊某一個柱狀圖,出現下面的彈窗 代碼實現 主要是在趨勢圖頁面代碼中,在初始化趨勢圖的設置中,添加對趨勢圖監聽的點擊方法 drawChart() {const chartData this.chartData;let option {};if (!chartData.xData?.len…

Swift 類和結構體

類和結構體 一、結構體和類對比1、類型定義的語法2、結構體和類的實例3、屬性訪問4、結構體類型的成員逐一構造器 二、結構體和枚舉是值類型三、類是引用類型1、恒等運算符2、指針 結構體和類作為一種通用而又靈活的結構,成為了人們構建代碼的基礎。你可以使用定義常…

python mp3轉mp4工具

成品UI 安裝moviepy庫 pip install moviepy 轉換demo from moviepy.editor import *# 創建一個顏色剪輯,時長與音頻相同 audioclip AudioFileClip(r"C:\Users\Administrator\PycharmProjects\pythonProject44\test4\趙照 - 燈塔守望人.mp3") videoclip…

node-nass安裝踩坑

編譯DSS的前端,用1.1.4編譯,沒有問題,用1.1.1版本就有問題,一直是node-gyp有問題,怎么也解決了不了。 后來檢查發現,是因為要安裝node-nass才導致出現node-gyp的問題。 而1.1.4沒問題,是因為我…

頭歌c語言實驗答案

由于頭歌C語言實驗的具體內容和題目可能隨時間變化,我無法直接提供特定實驗的完整答案。但我可以基于參考文章中的內容和結構,給出一個通用的回答格式,并結合相關信息進行說明。 通用回答格式 實驗名稱和描述 實驗名稱:頭歌C語言…

用Python Pygame做的一些好玩的小游戲

有些游戲的代碼比較長就不公布了 1.簡簡單單 1.瘋狂的雞哥 你要準備的圖片: 命名為:ji.png 代碼: import pygame import random as r pygame.init() pygame.display.set_caption(aaa) pm pygame.display.set_mode((800,600))class Ls(py…

Java進階學習筆記15——接口概述

認識接口: Java提供了一個關鍵字Interface,用這個關鍵字我們可以定義一個特殊的結構:接口。 接口不能創建對象。 注意:接口不能創建對象,接口是用來被類實現(implements)的,實現接口…

中國電子學會(CEIT)2023年05月真題C語言軟件編程等級考試三級(含詳細解析答案)

中國電子學會(CEIT)考評中心歷屆真題(含解析答案) C語言軟件編程等級考試三級 2023年05月 編程題五道 總分:100分一、找和為K的兩個元素(20分) 在一個長度為n (n < 1000)的整數序列中,判斷是否存在某兩個元素之和為k。 時間限制: 1000 內存限制: 65536 輸入 …

基于Spring Boot的高校圖書館管理系統

項目和論文都有企鵝號2583550535 基于Spring Boot的圖書館管理系統||圖書管理系統_嗶哩嗶哩_bilibili 第1章 緒論... 1 1.1 研究背景和意義... 1 1.2 國內外研究現狀... 1 第2章 相關技術概述... 2 2.1 后端開發技術... 2 2.1.1 SpringBoot 2 2.1.2 MySQL.. 2 2.1.3 My…

unity中如何插入網頁

在Unity中插入自己的網頁通常是通過使用Unity的WebGL構建目標和HTML頁面來實現的。以下是一些步驟&#xff1a; 構建你的Unity項目為WebGL&#xff1a;在Unity中&#xff0c;選擇Build Settings&#xff08;構建設置&#xff09;&#xff0c;將Platform&#xff08;平臺&#x…

vr商品全景展示場景編輯軟件的優點

3D模型展示網站搭建編輯器以強大的3D編輯引擎和逼真的渲染效果&#xff0c;讓您輕松實現模型展示的優化。讓用戶通過簡單的操作&#xff0c;就能滿足個人/設計師/商戶多樣化展示的需求&#xff0c;讓您的模型成為獨一無二的杰作。 3D模型展示網站搭建編輯器采用國內領先的實時互…

java繼承使用細節二

構造器 主類是無參構造器時會默認調用 public graduate() {// TODO Auto-generated constructor stub也就是說我這里要用構造器會直接調用父類。它是默認看不到的 &#xff0c;System.out.println("graduate");} 但當主類是有參構造器如 public father_(int s,doubl…

c語言:將小寫字母轉換為大寫字母

//將小寫字母轉換為大寫字母 #include <stdio.h> #include <ctype.h> int main() { char arr[]"you are low"; int i0; while(arr[i]) { if(islower(arr[i])) { arr[i]arr[i]-32; } i; } printf("%s\n",arr); return 0; }

微調Llama3實現在線搜索引擎和RAG檢索增強生成功能

視頻中所出現的代碼 Tavily SearchRAG 微調Llama3實現在線搜索引擎和RAG檢索增強生成功能&#xff01;打造自己的perplexity和GPTs&#xff01;用PDF實現本地知識庫_嗶哩嗶哩_bilibili 一.準備工作 1.安裝環境 conda create --name unsloth_env python3.10 conda activate …

周末總結(2024/05/25)

工作 人際關系核心實踐&#xff1a; 要學會隨時回應別人的善意。執行時間控制在5分鐘以內 堅持每天早會打招呼 工作上的要點 現狀&#xff08;接受破爛現狀&#xff0c;改變狀態&#xff09; - 這周使用和執行了生產環境發布流程(2天&#xff09;&#xff0c;2天時間在寫Java…

大膽預測:計算機將要回暖

中概財報集體亮眼 雖然最近幾天恒指&#xff08;港股&#xff09;稍有回落&#xff0c;但年線仍有 9% 的上漲。 過去三年&#xff0c;恒指分別下跌 14.08%、15.46% 和 13.82%。 而在近期&#xff0c;國內各大互聯網都公布了財報&#xff0c;別看各個大廠的作妖不斷&#xff0c;…

[前端|vue] v-if 和v-show的區別,為什么功能會類似

v-if 和 v-show 都是 Vue 中用于條件渲染的指令&#xff0c;但它們之間存在幾個關鍵區別&#xff0c;這些區別導致了它們在不同場景下的適用性也有所不同&#xff1a; v-if 的特點&#xff1a; 條件渲染&#xff1a;v-if 是一個動態的條件渲染指令&#xff0c;它會根據表達式的…

dubbo復習:(8)使用sentinel對服務進行降級

一、下載sentinel-dashboard控制臺應用并在8080端口啟動 二、項目添加springboot 和dubbo相關依賴&#xff08;降級規則并未持久化&#xff0c;如果需要持久化&#xff0c;如果需要持久化降級規則&#xff0c;只需增加nacos相關依賴并在nacos中進行配置&#xff0c;然后配置app…