首頁 > 軟體

Python實現全自動輸入文字的範例詳解

2022-11-23 14:00:41

1. 效果圖

該Python指令碼可以實現自動用Notepad++開啟文字檔案,然後自動輸入文字,最後儲存並關閉檔案,從而實現全面自動化處理文字。

2. 範例程式碼

Python指令碼原始碼如下,主要使用了win32gui、win32con和win32api模組

import win32gui
import win32con
import win32api
import time

ret = win32api.ShellExecute(1, 'open', 'D:\test.txt', '', '', 1)
print('正在開啟軟體...')
time.sleep(2)
handle = win32gui.FindWindow(None, r'D:test.txt - Notepad++')
handleEdit = win32gui.FindWindowEx(handle, None, 'Scintilla', None)

menu = win32gui.GetMenu(handle)
subMenu = win32gui.GetSubMenu(menu, 0)

mystring=['北國風光,千里冰封,萬里雪飄。',
'望長城內外,惟餘莽莽;大河上下,頓失滔滔。',
'山舞銀蛇,原馳蠟象,欲與天公試比高。',
'須晴日,看紅裝素裹,分外妖嬈。',
'江山如此多嬌,引無數英雄競折腰。',
'惜秦皇漢武,略輸文采;唐宗宋祖,稍遜風騷。',
'一代天驕,成吉思汗,只識彎弓射大雕。',
'俱往矣,數風流人物,還看今朝。','《沁園春·雪》']
for index, i in enumerate(mystring):
    for ch in i:
        print(ch)
        win32gui.SendMessage(handleEdit, win32con.WM_CHAR, ord(ch), 0)
        time.sleep(0.05)

    # 模擬按下確認鍵的操作
    win32api.keybd_event(13, 0, 0, 0)
    time.sleep(0.05)
    win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)

#獲取儲存按鈕
cmdId = win32gui.GetMenuItemID(subMenu, 6)
#點選儲存
win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)
#關閉視窗
win32gui.PostMessage(handle, win32con.WM_CLOSE, 0, 0)

3. 程式碼解釋

1.win32api.ShellExecute(1, 'open', 'D:\test.txt', '', '', 1)用預設的程式開啟D槽目錄下的test.txt檔案,我這裡設定預設用Notepad++開啟檔案檔案;

2.win32gui.FindWindow(None, r'D:test.txt - Notepad++')查詢標題為D:test.txt - Notepad++的視窗,該字串內容必須跟視窗的標題文字一致,如下圖所示:

3.win32gui.FindWindowEx(handle, None, 'Scintilla', None)第二個引數Scintilla非常關鍵,指的是輸入焦點所在子視窗的類名,如下圖

Windows系統自帶的記事本,它的輸入焦點子視窗類名是EDIT,Notepad++輸入焦點子視窗類名是Scintilla。我們可以用WinSpy.exe軟體來確定輸入焦點子視窗的類名,如下動圖所示:

從該介面可以看到Class值是Scintilla;

4.中間部分程式碼的解釋可以參考點選這裡

5.win32gui.GetMenuItemID(subMenu, 6)獲取儲存按鈕的索引,這裡的6是指儲存選項在選單中的位置序號,如下圖所示

在檔案選單欄中,新建是第0項,開啟是第1項,以此類推,儲存是第6項。

6.win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)傳送點選儲存按鈕的訊息,即可自動儲存文字內容。

到此這篇關於Python實現全自動輸入文字的範例詳解的文章就介紹到這了,更多相關Python自動輸入文字內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com