python操作_python 操作windows软件

需求: 启动同一个window软件N多次。

工具: spy++ 使用步骤

操作之前,需要先获取到软件的窗口句柄(主窗口)。

在写代码之前,一定要使用spy++工具弄清楚软件控件之间的tree关系。想要定位一个控件,需要先定位到它的父控件,如果父控件还有父控件,就再定位父父控件,直到定位的父控件处于主窗口控件之下, 否则根本定位不到。一定要使用spy++工具,否则肉眼看见的同一类型且相似功能的控件可能不一定处于同一层次,也就无法根据相同的父控件定位到。(控件也叫子窗口)

import win32con

import win32gui

import win32api

# 主窗口 使用FindWindow来查找主窗口

handle = win32gui.FindWindow(窗体类名, 窗口标题)

# 子窗口 使用FindWindowEx来查找子窗口

# 参数: 父控件,0, 类名, 标题

# 找到标题为设置中心的按钮控件

bhandle = win32gui.FindWindowEx(handle, 0, "Button", "设置中心")

# 子子窗口 在设置中心的窗口下的控件(相对主窗口来说)

# 找到类名是Edit的输入框控件,控件中没有标题(内容/提示)

input_handle = win32gui.FindWindowEx(bhandle, 0, 'Edit', "")

# 填充输入框 (文件选择框也可以使用该方法填充,message替换为filepath)

message = 'hello world'

win32api.SendMessage(input_handle, win32con.WM_SETTEXT, 0, message)

# 定位到启动服务按钮控件

start_server_button = win32gui.FindWindowEx(bhandle, 0, 'Button', "启动服务")

# 鼠标左单击

win32gui.PostMessage(start_server_button, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, 0)

win32gui.PostMessage(start_server_button, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, 0)

# 如果你不确定你定位到的是什么控件,可以使用下面两个方法获得当前控件的类名和标题

# 类名

class_name = win32gui.GetClassName(handle)

# 标题

title =win32gui.GetWindowText(handle)

对于操作软件,输入和点击已经够用了,如果还需要别的操作请自行查找方法。

资料链接 1. FindWindow和FindWindowEx区别

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值