<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在windows系統上,重複性的操作可以用Python指令碼來完成,其中常用的模組是win32gui、win32con、win32api,要使用這三個模組需要先安裝pywin32。在cmd中輸入如下命令,即可安裝pywin32:
pip install pywin32
這三個模組作用如下:
win32gui:模組定義了Windows下關於圖形操作的API,如查詢視窗控制程式碼的函數FindWindow和FindWindowEx;
win32con:模組內定義了Windows API內的宏;
win32api:win32api為Microsoft 32位元平臺的應用程式程式設計介面,可以模擬按鍵操作。
以自動在記事本中輸入文字為例,說明如何利用這三個模組進行自動化辦公
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,'test.txt - 記事本') handleEdit = win32gui.FindWindowEx(handle, None, 'EDIT', 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, 3) #點選儲存 win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0) #關閉視窗 win32gui.PostMessage(handle, win32con.WM_CLOSE, 0, 0)
1.win32api.ShellExecute(1, 'open', 'D:\test.txt', '', '', 1)表示開啟D槽目錄下的test.txt檔案。
2.time.sleep(2)有的檔案開啟比較慢,所以這裡等待2秒
3.win32gui.FindWindow(None,'test.txt - 記事本')查詢視窗控制程式碼,這裡是根據視窗的標題來查詢視窗的控制程式碼,第二個引數值要與標題完全一致,如下圖
4.win32gui.FindWindowEx(handle, None, 'EDIT', None)用第3步找到的控制程式碼查詢輸入的視窗,這裡視窗對應的引數是’EDIT’,換一個軟體可能就不是’EDIT’
5.subMenu = win32gui.GetSubMenu(menu, 0)查詢視窗對應的選單,後面儲存檔案會用到
6.win32gui.SendMessage(handleEdit, win32con.WM_CHAR, ord(ch), 0)向輸入的視窗寫入字元ord(ch)
7.win32api.keybd_event(13, 0, 0, 0)寫完一行後,模擬鍵盤輸入Enter鍵,Enter鍵對應的鍵值是13,這行程式碼錶示按鍵按下
8.win32api.keybd_event(13, 0, win32con.KEYEVENTF_KEYUP, 0)這行程式碼錶示Enter鍵鍵鬆開
9.cmdId=win32gui.GetMenuItemID(subMenu, 3)根據第5步的子選單獲取儲存按鈕的索引值,如下圖所示,從0開始計數,儲存正好是第3個
10.win32gui.PostMessage(handle, win32con.WM_COMMAND, cmdId, 0)發生儲存訊息
11.win32gui.PostMessage(handle, win32con.WM_CLOSE, 0, 0)發生關閉視窗訊息
按照這樣的程式設計流程,就實現了自動開啟test.txt檔案,並自動輸入預置的文字內容,輸入完成後自動儲存並關閉視窗,從而實現了自動化辦公。
win32api.ShellExecute(1, 'open', 'D:\test.txt', '', '', 1)這行程式碼用預設的程式開啟檔案,如果你設定預設開啟程式不是記事本,那本程式碼無法自動輸入文字到test.txt中
在自動輸入文字時,需要保證記事本視窗獲得輸入焦點,否則程式無法按照預期執行。
到此這篇關於Python利用pywin32實現自動操作電腦的文章就介紹到這了,更多相關Python pywin32操作電腦內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45