python win32con_python win32 简单操作方法

源由

刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定;后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~

下载

要注意Python版本及位数,否则会安装失败

直接到上面的地址去找合适的版本下载安装,已包含其它的工具

下载的已经是可执行文件,直接执行即可

https://sourceforge.net/projects/pywin32/

获取句柄的方式

VC或VS工具里面自带SPY++,可以获取句柄信息, 这个你没有,请看下条

没错,就是按键精灵(不是做广告哈,第一次查找句柄信息的时候就是用这货),功能简单易用

使用

查询句柄

# 根据类名及标题名查询句柄,

hwnd = win32gui.FindWindow("Tfrm_YzzPlayer","叶子猪手游模拟器")

# 查找指定句柄的子句柄,后两个参数为子类的类名与标题,如果没有或不确定,可以写None

hwnd = win32gui.FindWindow(hwnd,None,"sub_class","sub_title")

修改窗口大小

# 没有直接修改窗口大小的方式,但可以曲线救国,几个参数分别表示句柄,起始点坐标,宽高度,是否重绘界面 ,如果想改变窗口大小,就必须指定起始点的坐标,没果对起始点坐标没有要求,随便写就可以;如果还想要放在原先的位置,就需要先获取之前的边框位置,再调用该方法即可

win32gui.MoveWindow(hwnd,20,20,405,756,True)

前台后台

# 指定句柄设置为前台,也就是激活

win32gui.SetForegroundWindow(hwnd)

# 设置为后台

win32gui.SetBkMode(hwnd, win32con.TRANSPARENT)

按键

# 在这里两几种方式可以选择 可以使用win32gui包和win32api的包,目前未深入了解,感觉是一样的,每一个里面还有PostMessage与SendMessage两都可选,依据其他文档的说法是SendMessage是同步的,在成功执行后才会返回,而PostMessage是异步执行的,直接返回,只是把内容加在队列里

# 几个参数分别为: 操作的句柄 , 按键的类型(是按下或者是弹起), 键码(大部分的功

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win32是Python的一个扩展模块,它提供了访问Windows API的功能,可以用来编写Windows应用程序或系统管理工具。下面是Win32类的一些常用功能和使用方法: 1. 创建窗口 使用Win32,可以通过以下代码创建一个窗口: ```python import win32gui def wndProc(hWnd, message, wParam, lParam): if message == win32con.WM_DESTROY: win32gui.PostQuitMessage(0) return win32gui.DefWindowProc(hWnd, message, wParam, lParam) className = 'MyWindowClass' wc = win32gui.WNDCLASS() wc.lpfnWndProc = wndProc wc.lpszClassName = className hInstance = win32api.GetModuleHandle() classAtom = win32gui.RegisterClass(wc) hWnd = win32gui.CreateWindow(className, 'My Window', win32con.WS_OVERLAPPEDWINDOW, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, None, None, hInstance, None) win32gui.ShowWindow(hWnd, win32con.SW_SHOWDEFAULT) win32gui.UpdateWindow(hWnd) ``` 上面的代码创建了一个名为"My Window"的窗口,并显示出来。 2. 操作窗口 使用Win32,可以通过以下代码来操作窗口: ```python import win32gui hWnd = win32gui.FindWindow(None, 'My Window') win32gui.SetWindowText(hWnd, 'New Title') rect = win32gui.GetWindowRect(hWnd) win32gui.MoveWindow(hWnd, rect[0], rect[1], 400, 300, True) ``` 上面的代码将窗口的标题修改为"New Title",并将窗口移动到屏幕左上角。 3. 注册热键 使用Win32,可以通过以下代码注册一个热键: ```python import win32con import win32api import win32gui def onHotKey(idHotKey): print('Hot key pressed: {}'.format(idHotKey)) hWnd = win32gui.GetForegroundWindow() idHotKey = 1 win32api.RegisterHotKey(hWnd, idHotKey, win32con.MOD_WIN, win32con.VK_F1) win32gui.AddClipboardFormatListener(hWnd) msg = win32gui.GetMessage(None, 0, 0) while msg: if msg.message == win32con.WM_HOTKEY: onHotKey(msg.wParam) win32gui.TranslateMessage(msg) win32gui.DispatchMessage(msg) msg = win32gui.GetMessage(None, 0, 0) win32api.UnregisterHotKey(hWnd, idHotKey) ``` 上面的代码注册了一个Win键+F1的热键,并在按下热键时输出一条消息。 总之,Win32类提供了丰富的功能和方法,可以方便地操作Windows系统。需要注意的是,使用Win32需要了解Windows API的知识,否则可能会出现一些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值