Python 第三方模块之 win32api

  • Win32gui: Windows图形界面接口模块。主要负责操作窗口切换以及窗口中元素id标签的获取
  • Win32api: Windows开发接口模块。主要负责模拟键盘和鼠标操作,对win32gui获取的标签进行点击/获取值/修改值等操作
  • Win32con:全面的库函数,提供Win32gui和Win32api需要的操作参数

Win32api 函数

SendMessage PostMessage GetCursorPos 等 win32api 与 win32gui 均包含的函数,用法也相同。

keybd_event 键盘事件

1
2
3
4
5
6
7
8
9
10
11
# keybd_event(bVk, bScan, dwFlags , dwExtraInfo)
# * bVk:为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab其他键值具体参考:(注意转换16进制)https://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx
# * bScan:为扫描码,一般不用设置,用0代替就行
# * dwFlags:为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF\_KEYUP"
# * dwExtraInfo:点击键关联的附加数据,一般置0即可
win32api.keybd_event(18,0,0,0) # 按下ALT键,按下后不会弹起
win32api.keybd_event(18,0, win32con.KEYEVENTF_KEYUP,0) # 手动点上键结束点击
```


### `mouse_event` 鼠标事件

mouse_event( dwFlags, dx, dy, cButtons, dwExtraInfo)

* dwFlags:控制鼠标移动和点击按钮的各个方面。可以是下列值的某些组合:MOUSEEVENTF_ABSOLUTE,MOUSEEVENTF_LEFTDOWN,MOUSEEVENTF_MIDDLEUP等

* dx:鼠标的位置沿x轴的位移

* dy:鼠标的位置沿y轴的位移

* cButtons: 与鼠标事件关联的附加值,在这里不关注

* dwExtraInfo: 与鼠标事件关联的附加值,在这里不关注

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0) #鼠标左键按下
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0) #鼠标左键拾起

1
2
3
4
5
6


### SetCursorPos

```bash
win32api.SetCursorPos(x,y) # 将光标移到屏幕坐标(x,y)处

RegOpenKey

1
2
3
4
5
6
7
win32api.RegOpenKey(hKey,ipSubKey,phkResult) 打开给定键,一般是打开一个现有的注册表项
# * hKey :要打开键的句柄,即注册表最外层名称
# * lpSubKey:要打开的项名,即项具体路径名称
# * phkResult:指定一个变量,用于装载(保存)打开注册表项的一个句柄

# 打开endpoint注册表:
endpoint_key=win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,'SOFTWARE\\Ixia Communications\\Endpoint',0, win32con.KEY_READ) #最后一个参数指权限为读

RegQueryValueEx

1
2
3
4
5
6
7
8
win32api.RegQueryValueEx(hKey, lpValueName, lpReserved, lpType, lpData, lpcbData) 检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值。
# * HKEY hKey:一个已打开项的句柄,即RegOpenKey打开的注册表项的句柄
# * LPCTSTR lpValueName:要查询注册表键值的名字字符串,注册表键的名字,以空字符结束。
# * LPDWORD lpReserved:未用,设为零
# * LPDWORD lpType:用于装载取回数据类型的一个变量
# * LPBYTE lpData:用于装载指定值的一个缓冲区
# * LPDWORD lpcbData:用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数
install_path = win32api.RegQueryValueEx(endpoint_key,'Installation Directory') # 根据键值名字' Installation Directory'得到返回值 'C:\\Program Files\\Ixia\\Endpoint\\'

RegCloseKey

1
2
# RegCloseKey(hKey)  不使用时,关闭注册表。
win32api.RegCloseKey(endpoint_key)

Python 第三方模块之 win32api
https://flepeng.github.io/021-Python-31-Python-第三方模块-01-windows-相关-Python-第三方模块之-win32api/
作者
Lepeng
发布于
2021年4月27日
许可协议