Python實(shí)現(xiàn)全自動輸入文本的示例詳解
1. 效果圖

該P(yáng)ython腳本可以實(shí)現(xiàn)自動用Notepad++打開文本文件,然后自動輸入文本,最后保存并關(guān)閉文件,從而實(shí)現(xiàn)全面自動化處理文本。
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=['北國風(fēng)光,千里冰封,萬里雪飄。',
'望長城內(nèi)外,惟余莽莽;大河上下,頓失滔滔。',
'山舞銀蛇,原馳蠟象,欲與天公試比高。',
'須晴日,看紅裝素裹,分外妖嬈。',
'江山如此多嬌,引無數(shù)英雄競折腰。',
'惜秦皇漢武,略輸文采;唐宗宋祖,稍遜風(fēng)騷。',
'一代天驕,成吉思汗,只識彎弓射大雕。',
'俱往矣,數(shù)風(fēng)流人物,還看今朝。','《沁園春·雪》']
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)
#點(diǎn)擊保存
win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)
#關(guān)閉窗口
win32gui.PostMessage(handle, win32con.WM_CLOSE, 0, 0)
3. 代碼解釋
1.win32api.ShellExecute(1, 'open', 'D:\\test.txt', '', '', 1)用默認(rèn)的程序打開D盤目錄下的test.txt文件,我這里設(shè)置默認(rèn)用Notepad++打開文件文件;
2.win32gui.FindWindow(None, r'D:\test.txt - Notepad++')查找標(biāo)題為D:\test.txt - Notepad++的窗口,該字符串內(nèi)容必須跟窗口的標(biāo)題文本一致,如下圖所示:

3.win32gui.FindWindowEx(handle, None, 'Scintilla', None)第二個參數(shù)Scintilla非常關(guān)鍵,指的是輸入焦點(diǎn)所在子窗口的類名,如下圖

Windows系統(tǒng)自帶的記事本,它的輸入焦點(diǎn)子窗口類名是EDIT,Notepad++輸入焦點(diǎn)子窗口類名是Scintilla。我們可以用WinSpy.exe軟件來確定輸入焦點(diǎn)子窗口的類名,如下動圖所示:


從該界面可以看到Class值是Scintilla;
4.中間部分代碼的解釋可以參考點(diǎn)擊這里
5.win32gui.GetMenuItemID(subMenu, 6)獲取保存按鈕的索引,這里的6是指保存選項(xiàng)在菜單中的位置序號,如下圖所示

在文件菜單欄中,新建是第0項(xiàng),打開是第1項(xiàng),以此類推,保存是第6項(xiàng)。
6.win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)發(fā)送點(diǎn)擊保存按鈕的消息,即可自動保存文本內(nèi)容。
到此這篇關(guān)于Python實(shí)現(xiàn)全自動輸入文本的示例詳解的文章就介紹到這了,更多相關(guān)Python自動輸入文本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)判斷一個整數(shù)是否為回文數(shù)算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)判斷一個整數(shù)是否為回文數(shù)算法,結(jié)合實(shí)例形式分析了Python針對字符串的翻轉(zhuǎn)、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
python獲取當(dāng)前目錄路徑和上級路徑的實(shí)例
下面小編就為大家分享一篇python獲取當(dāng)前目錄路徑和上級路徑的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
基于Python制作一個端午節(jié)相關(guān)的小游戲
端午節(jié)快樂,今天我將為大家?guī)硪黄嘘P(guān)端午節(jié)的編程文章,希望能夠?yàn)榇蠹耀I(xiàn)上一份小小的驚喜,我們將會使用Python來實(shí)現(xiàn)一個與端午粽子相關(guān)的小應(yīng)用程序,在本文中,我將會介紹如何用Python代碼制做一個“粽子拆解器”,感興趣的小伙伴歡迎閱讀2023-06-06
python Autopep8實(shí)現(xiàn)按PEP8風(fēng)格自動排版Python代碼
這篇文章主要介紹了python Autopep8實(shí)現(xiàn)按PEP8風(fēng)格自動排版Python代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
python openCV實(shí)現(xiàn)攝像頭獲取人臉圖片
這篇文章主要為大家詳細(xì)介紹了python openCV實(shí)現(xiàn)攝像頭獲取人臉圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-08-08
python正則表達(dá)式re.search()的基本使用教程
正則表達(dá)式是我們?nèi)粘i_發(fā)中必然會遇到的,下面這篇文章主要介紹了python正則表達(dá)式re.search()的基本使用教程,需要的朋友可以參考下2021-05-05
python GUI庫圖形界面開發(fā)之PyQt5布局控件QVBoxLayout詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5布局控件QVBoxLayout詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03

