python模擬鍵盤輸入 切換鍵盤布局過程解析
PostMessage()
def keyHwnd(hwndEx, char):
"""
向指定控件輸入值
:param hwndEx: 控件句柄
:param char: 字符串
:return: True or Flase
"""
try:
for _ in char:
print('key:%s ascii:%d' % (_, ord(_)))
win32api.PostMessage(hwndEx, win32con.WM_CHAR, ord(_), 0)
time.sleep(random.uniform(0,0.2))
except Exception as e:
print(e)
return False
return True
hwnd = win32gui.FindWindow(None,'a.txt - 記事本')
print(hwnd)
win32gui.SetForegroundWindow(hwnd)
hwndex = win32gui.FindWindowEx(hwnd,None,'Edit', None)
keyHwnd(hwndex,'撒地方SDFkof;ldsojfdfdsjfd;slkjfdlksjfkldsjflkdsjlkfjkldsljkfjdssj')
切換鍵盤布局
該功能封裝成了一個(gè)裝飾器,函數(shù)執(zhí)行完恢復(fù)了原鍵盤布局
import win32con
from win32con import WM_INPUTLANGCHANGEREQUEST
import win32gui
import win32api
def setKeyboardLayout_en(inner):
def wrapper(*args, **kwargs):
if win32api.LoadKeyboardLayout('0x0409', win32con.KLF_ACTIVATE) == None:
return Exception('加載鍵盤失敗')
# 語(yǔ)言代碼
# https://msdn.microsoft.com/en-us/library/cc233982.aspx
LID = {0x0804: "Chinese (Simplified) (People's Republic of China)",
0x0409: 'English (United States)'}
# 獲取前景窗口句柄
hwnd = win32gui.GetForegroundWindow()
# 獲取前景窗口標(biāo)題
title = win32gui.GetWindowText(hwnd)
# 獲取鍵盤布局列表
im_list = win32api.GetKeyboardLayoutList()
im_list = list(map(hex, im_list))
print(im_list)
oldKey = hex(win32api.GetKeyboardLayout())
# 設(shè)置鍵盤布局為英文
result = win32api.SendMessage(
hwnd,
WM_INPUTLANGCHANGEREQUEST,
0,
0x4090409)
if result == 0:
print('設(shè)置英文鍵盤成功!')
inner(*args,*kwargs)
result = win32api.SendMessage(
hwnd,
WM_INPUTLANGCHANGEREQUEST,
0,
oldKey)
if result == 0:
print('還原鍵盤成功!')
return wrapper
ascii標(biāo)準(zhǔn)碼

keybd_event()
win32api.keybd_event(65, 0, 0, 0) time.sleep(random.uniform(0, 0.5)) win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0)


這位兄弟寫的關(guān)于模擬鍵盤非常全
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python模擬鍵盤輸入自動(dòng)登錄TGP
- python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸入的操作
- python實(shí)現(xiàn)鍵盤輸入的實(shí)操方法
- Linux上使用Python統(tǒng)計(jì)每天的鍵盤輸入次數(shù)
- Python使用Windows API創(chuàng)建窗口示例【基于win32gui模塊】
- Python鍵盤輸入轉(zhuǎn)換為列表的實(shí)例
- python監(jiān)控鍵盤輸入實(shí)例代碼
- Python中的模塊導(dǎo)入和讀取鍵盤輸入的方法
- Python讀取鍵盤輸入的2種方法
- python基于windows平臺(tái)鎖定鍵盤輸入的方法
- python基于win32api實(shí)現(xiàn)鍵盤輸入
相關(guān)文章
python Jupyter運(yùn)行時(shí)間實(shí)例過程解析
這篇文章主要介紹了python Jupyter運(yùn)行時(shí)間實(shí)例過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
解決pycharm安裝scrapy DLL load failed:找不到指定的程序的問題
很多朋友向小編求助pycharm安裝scrapy DLL load failed:找不到指定的程序的問題,就這一問題小編在window10 + anaconda3 +pycharm2020.1.1 + scrapy安裝親測(cè)可用,下面把我的處理過程分享到腳本之家平臺(tái),供大家參考2021-06-06
python 如何做一個(gè)識(shí)別率百分百的OCR
最近在做游戲自動(dòng)化(測(cè)試),也就是游戲腳本了。主要有以下幾個(gè)需求識(shí)別率百分百、速度要快、模型要小,本文就來著手實(shí)現(xiàn)它2021-05-05
深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例
這篇文章主要介紹了深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
python?slack桌面自動(dòng)化開發(fā)工具
這篇文章主要為大家介紹了python?slack桌面自動(dòng)化開發(fā)工具使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

