import time
# 鼠標操作
import pymouse
# 鼠標操作
import win32api
import win32gui
import win32con
import win32ui
# pip install Pillow-PIL==0.1.dev0
from PIL import Image
# 僅執行一次
m = pymouse.PyMouse()
print(m.position())
class xyq_util:
# 移動鼠標
def __move__(self,x,y):
m.move(x,y)
# 右擊
def __right_click__(self,x,y):
m.click(x, y, 2)
# 左擊
def __left_click__(self,x,y):
m.click(x, y)
# win32方式 移動并點擊 可后臺操作 click_it(390, 162)
def click_it(self,x,y):
win32api.SetCursorPos([x, y])
pos = win32api.GetCursorPos()
handle= win32gui.WindowFromPoint(pos)
#handle = win32gui.FindWindow('Galaxy2DEngine',None)
title = win32gui.GetWindowText(handle)
clsname = win32gui.GetClassName(handle)
print(title," --- ",clsname)
client_pos =win32gui.ScreenToClient(handle,pos)
tmp=win32api.MAKELONG(client_pos[0],client_pos[1])
win32gui.SendMessage(handle, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)
win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,tmp)
win32gui.SendMessage(handle, win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,tmp)
#win32gui.SendMessage(handle, win32con.WM_RBUTTONDOWN,win32con.MK_LBUTTON,tmp)
#win32gui.SendMessage(handle, win32con.WM_RBUTTONUP,win32con.MK_LBUTTON,tmp)
# 移動右擊
def move_right_click(self,x,y):
xyq_util.__move__(self,x,y)
xyq_util.__right_click__(self,x,y)
xyq_util.sleep(self)
# 移動左擊
def move_left_click(self,x,y):
xyq_util.__move__(self,x,y)
xyq_util.__left_click__(self,x,y)
xyq_util.sleep(self)
# 睡眠0.5s
def sleep(self):
xyq_util.sleep_time(self,0.7)
# 睡眠指定時間
def sleep_time(self,seconds):
time.sleep(seconds)
# 窗口截圖
def save_image(self):
#獲取窗口句柄
pos = win32api.GetCursorPos()
hWnd= win32gui.WindowFromPoint(pos)
#獲取句柄窗口的大小信息
left, top, right, bot = win32gui.GetWindowRect(hWnd)
width = right - left
height = bot - top
#返回句柄窗口的設備環境,覆蓋整個窗口,包括非客戶區,標題欄,菜單,邊框
hWndDC = win32gui.GetWindowDC(hWnd)
#創建設備描述表
mfcDC = win32ui.CreateDCFromHandle(hWndDC)
#創建內存設備描述表
saveDC = mfcDC.CreateCompatibleDC()
#創建位圖對象準備保存圖片
saveBitMap = win32ui.CreateBitmap()
#為bitmap開辟存儲空間
saveBitMap.CreateCompatibleBitmap(mfcDC,width,height)
#將截圖保存到saveBitMap中
saveDC.SelectObject(saveBitMap)
#保存bitmap到內存設備描述表
saveDC.BitBlt((0,0), (width,height), mfcDC, (0, 0), win32con.SRCCOPY)
###獲取位圖信息
bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)
###生成圖像
im_PIL = Image.frombuffer('RGB',(bmpinfo['bmWidth'],bmpinfo['bmHeight']),bmpstr,'raw','BGRX',0,1)
im_PIL.save("save.png") #保存
#im_PIL.show() #顯示
time.sleep(1)
Python 操作鼠標
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 當你需要執行復雜的操作時,比如將一個元素按住拖動到另一個元素上去,需要移動鼠標然后點擊并按下鍵盤某個按鍵等等。 當...
- 一、Selenium之鼠標操作和鍵盤操作 1.鼠標事件在webdriver中,鼠標操作的方法封裝在 ActionC...
- 一、實現目標 ??在OpenCV中通過鼠標左鍵拖拽移動圖片,通過鼠標滾輪前后旋轉放大縮小圖片。 二、實現背景 ??...
- python中的庫可以模擬鼠標點擊和鍵盤輸入的動作。所以我們需要告訴程序在哪里點擊,單機還是雙擊,點右鍵還是左鍵,...