from win32com.client import Dispatch, DispatchEx
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供鄂托克網(wǎng)站建設、鄂托克做網(wǎng)站、鄂托克網(wǎng)站設計、鄂托克網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、鄂托克企業(yè)網(wǎng)站模板建站服務,10余年鄂托克做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
import pythoncom
from PIL import ImageGrab, Image
import uuid
def excel_catch_screen(filename, sheetname, screen_area, img_name=False):
""" 對excel的表格區(qū)域進行截圖——用例:excel_catch_screen(ur"D:\Desktop\123.xlsx", "Sheet1", "A1:J10")"""
pythoncom.CoInitialize() # excel多線程相關
if name == ' main ':
excel_catch_screen(r"C:\Users\huangat\Downloads\2019-04-08_2019-04-21_yunying.xlsx", "Sheet", "A1:J6")
Python獲取電腦截圖有多種方式,具體如下:
PIL中的ImageGrab模塊
windows API
PyQt
pyautogui
使用Selenium截圖
使用PIL中的ImageGrab模塊簡單,但是效率有點低,截屏一次需0.5s。
調用windows API,速度快但是使用較復雜,這里就不做詳細介紹了,因為有更好用的PyQt。
PyQt比調用windows API簡單很多,而且有windows API的很多優(yōu)勢,比如速度快,可以指定獲取的窗口,即使窗口被遮擋。需注意的是,窗口最小化時無法獲取截圖。
首先需要獲取窗口的句柄。
程序會打印窗口的hwnd和title,有了title就可以進行截圖了。
pyautogui是比較簡單的,但是不能指定獲取程序的窗口,因此窗口也不能遮擋,不過可以指定截屏的位置,0.04s一張截圖,比PyQt稍慢一點,但也很快了。
使用Selenium只能進行WEB程序截圖
由于在我的一個程序中想要添加一個截圖功能,今天看一下利用Python怎樣截圖,功能實現(xiàn)都挺簡單了,直接上代碼
from
PIL
import
ImageGrab
im
=
ImageGrab.grab()
im.save(addr,'jpeg')
很簡單的幾行代碼就實現(xiàn)了我要的功能,PIL(Python
Image
Library)是Python的一個圖形庫,需要自己下載安裝,im
=
ImageGrab.grab()這行代碼實現(xiàn)截圖功能,可以帶參數(shù),指定要截取圖片的坐標位置,不帶參數(shù)默認全屏截圖,im.save(addr,'jpeg')是保存截取的圖片,第一個參數(shù)是保存路徑,第二個參數(shù)是圖片格式