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('加載鍵盤失敗') # 語言代碼 # 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代碼簡(jiǎn)潔的實(shí)用技巧總結(jié)
隨著項(xiàng)目代碼行數(shù)的增加,不可避免的遇到軟件架構(gòu)腐敗的問題,所以如何寫出簡(jiǎn)潔的代碼至關(guān)重要,這篇文章主要給大家介紹了一些讓Python代碼簡(jiǎn)潔的實(shí)用技巧,需要的朋友可以參考下2021-08-08linux mint中搜狗輸入法導(dǎo)致pycharm卡死的問題
這篇文章主要介紹了linux mint中搜狗輸入法導(dǎo)致pycharm卡死的問題,這篇文章給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Python發(fā)送郵件封裝實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Python發(fā)送郵件封裝實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python單元測(cè)試工具doctest和unittest使用解析
這篇文章主要介紹了Python單元測(cè)試工具doctest和unittest使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09python實(shí)現(xiàn)敲木魚加功德包含加音效和敲擊動(dòng)作(附demo)
敲木魚加功德是一款很火的動(dòng)畫,本文主要介紹了python實(shí)現(xiàn)敲木魚加功德包含加音效和敲擊動(dòng)作,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11在python中利用pycharm自定義代碼塊教程(三步搞定)
這篇文章主要介紹了在python中利用pycharm自定義代碼塊教程(三步搞定),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問
這篇文章主要介紹了談?wù)凱ython:為什么類中的私有屬性可以在外部賦值并訪問,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03