Python實(shí)現(xiàn)全自動(dòng)輸入文本的示例詳解
1. 效果圖
該P(yáng)ython腳本可以實(shí)現(xiàn)自動(dòng)用Notepad++打開文本文件,然后自動(dòng)輸入文本,最后保存并關(guān)閉文件,從而實(shí)現(xiàn)全面自動(dòng)化處理文本。
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ù)英雄競(jìng)折腰。', '惜秦皇漢武,略輸文采;唐宗宋祖,稍遜風(fēng)騷。', '一代天驕,成吉思汗,只識(shí)彎弓射大雕。', '俱往矣,數(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)第二個(gè)參數(shù)Scintilla非常關(guān)鍵,指的是輸入焦點(diǎn)所在子窗口的類名,如下圖
Windows系統(tǒng)自帶的記事本,它的輸入焦點(diǎn)子窗口類名是EDIT,Notepad++輸入焦點(diǎn)子窗口類名是Scintilla。我們可以用WinSpy.exe軟件來確定輸入焦點(diǎn)子窗口的類名,如下動(dòng)圖所示:
從該界面可以看到Class值是Scintilla;
4.中間部分代碼的解釋可以參考點(diǎn)擊這里
5.win32gui.GetMenuItemID(subMenu, 6)獲取保存按鈕的索引,這里的6是指保存選項(xiàng)在菜單中的位置序號(hào),如下圖所示
在文件菜單欄中,新建是第0項(xiàng),打開是第1項(xiàng),以此類推,保存是第6項(xiàng)。
6.win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)發(fā)送點(diǎn)擊保存按鈕的消息,即可自動(dòng)保存文本內(nèi)容。
到此這篇關(guān)于Python實(shí)現(xiàn)全自動(dòng)輸入文本的示例詳解的文章就介紹到這了,更多相關(guān)Python自動(dòng)輸入文本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+selenium實(shí)現(xiàn)自動(dòng)循環(huán)扔QQ郵箱漂流瓶
這篇文章主要為大家詳細(xì)介紹了Python+selenium實(shí)現(xiàn)自動(dòng)循環(huán)扔QQ郵箱漂流瓶,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Python使用jpype模塊調(diào)用jar包過程解析
這篇文章主要介紹了Python使用jpype模塊調(diào)用jar包過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Python PyQt5模塊實(shí)現(xiàn)一個(gè)瀏覽器的示例代碼
在項(xiàng)目開發(fā)中,有的應(yīng)用程序可以運(yùn)行在web瀏覽器,本文主要介紹了Python PyQt5模塊實(shí)現(xiàn)一個(gè)瀏覽器的示例代碼,分享給大家,感興趣的可以了解一下2021-07-07TensorFlow人工智能學(xué)習(xí)創(chuàng)建數(shù)據(jù)實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了TensorFlow人工智能學(xué)習(xí)創(chuàng)建數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11python讀取excel表格生成erlang數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了python讀取excel表格生成erlang數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08遠(yuǎn)程部署工具Fabric詳解(支持Python3)
這篇文章主要介紹了遠(yuǎn)程部署神器 Fabric,支持Python3 ,Fabric 出場(chǎng)了。Fabric 是一個(gè)遠(yuǎn)程部署神器,它可以在本地執(zhí)行遠(yuǎn)程服務(wù)器的命令。,需要的朋友可以參考下2019-07-07使用opencv識(shí)別圖像紅色區(qū)域,并輸出紅色區(qū)域中心點(diǎn)坐標(biāo)
這篇文章主要介紹了使用opencv識(shí)別圖像紅色區(qū)域,并輸出紅色區(qū)域中心點(diǎn)坐標(biāo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06Tensorflow之MNIST CNN實(shí)現(xiàn)并保存、加載模型
這篇文章主要為大家詳細(xì)介紹了Tensorflow之MNIST CNN實(shí)現(xiàn)并保存、加載模型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06Python使用shelve模塊實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)存儲(chǔ)的方法
這篇文章主要介紹了Python使用shelve模塊實(shí)現(xiàn)簡(jiǎn)單數(shù)據(jù)存儲(chǔ)的方法,涉及shelve模塊實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的技巧,需要的朋友可以參考下2015-05-05