Home  >  Q&A  >  body text

python模拟操作用win32api,win32gui 等API获取到一个菜单句柄后,如何点击?

第一次做模拟的操作,不太懂模拟,

如图已经获取到系统设置这个句柄


网上找了demo,demo里只有用win32api.SetCursorPos([30,150])这样定死的坐标,我觉得不应该这么死的呀,应该可以根据句柄获取坐标的吧?
还有可不可以直接对这个发送点击操作?应该怎么写代码?

或者获取一些相对坐标什么的?想请问大神们应该怎么写后面的代码?
下面的是我参照DEMO写的

#-*-coding:utf-8-*-
#http://www.jb51.net/article/49214.htm
import os
import time
import win32gui
import win32api
import win32con
from PIL import ImageGrab
#os.startfile("D:\\artcut6\\Prog\\Artcut6.exe")
#time.sleep(1)
wdname1=u"软件标题"
w1hd=win32gui.FindWindow(0,wdname1)
print w1hd
#获取第一个子UI句柄
w2hd=win32gui.FindWindowEx(w1hd,None,None,None)
print w2hd
#获取'系统设置'的句柄
w3hd=win32gui.FindWindowEx(w2hd,None,None,'系统设置')
print w3hd

#获取窗口焦点
win32gui.SetForegroundWindow(w3hd)
天蓬老师天蓬老师2720 days ago1053

reply all(1)I'll reply

  • 高洛峰

    高洛峰2017-04-18 10:11:10

    left, top, right, bottom = win32gui.GetWindowRect(hwnd)
    win32api.SetCursorPos((left+5,top+5))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
    time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)

    reply
    0
  • Cancelreply