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

第一次做模拟的操作,不太懂模拟,
clipboard.png
如图已经获取到系统设置这个句柄

clipboard.png
网上找了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)
阅读 21.8k
1 个回答

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)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题