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)
microsoft鍵盤碼參考
這位兄弟寫的關(guān)于模擬鍵盤非常全
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
