windows窗口操作演示 pywin32 win32gui win32con win32clipboard

windows窗口操作 pywin32

在工作中,需要自动化的处理一些windows窗口,通过selenium没法很好的处理,所以在网上查找了一些资料,发现pywin32这个模块特别好用(本人只会用些简单的方法,有兴趣的可自行查看相关资料),可以实现通过获取窗口的句柄,然后来实现对窗口的操作,废话不多了,现在就贴出一个演示代码(参考了别的代码,但是也加入了一些自己的理解,希望对读者能起到帮助)
在执行代码前需要准备一些准备工作:
1.安装需要的模块
2.登录QQ
3.打开需要发送人的消息窗口(需要发送消息的窗口不能最小化,否则消息发送回失败

窗口名称信息如果不知道怎么找的可以使用spy++
spy++介绍地址
原作者文章链接

# -*- coding: utf-8 -*-  
import win32clipboard as w  # 剪贴板
import win32gui, win32con, time

def setText(aString):
    """设置剪贴板文本"""
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
    w.CloseClipboard()

def getText():
    """获取剪贴板文本"""
    w.OpenClipboard()
    d = w.GetClipboardData(win32con.CF_UNICODETEXT)
    w.CloseClipboard()
    return d

def send_Mess(hwnd):
    win32gui.PostMessage(hwnd, win32con.WM_PASTE, 0, 0)  # 向窗口发送剪贴板内容(粘贴) QQ测试可以正常发送
    time.sleep(0.3)
    win32gui.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)  # 向窗口发送 回车键
    win32gui.PostMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

 # 窗口名
windowtitle = '小媳妇' 
hwnd = win32gui.FindWindow(None, windowtitle)
print("%x"%hwnd)


if hwnd > 0:
    print('找到%s' % windowtitle)
    # 指定句柄设置为前台,也就是激活 当中有个坑,就是窗口不能最小化
    win32gui.SetForegroundWindow(hwnd)
    setText('这是我要发送的内容-测试数据')
    send_Mess(hwnd)
    # 改变窗口大小
    win32gui.MoveWindow(hwnd, 20, 20, 405, 756, True) 
    time.sleep(6)
    # 设置为后台
    win32gui.SetBkMode(hwnd, win32con.TRANSPARENT)  
    time.sleep(1)
    # 关闭窗口
    win32gui.PostMessage(hwnd,win32con.WM_CLOSE,0,0)
else:
    print('没找到%s' % windowtitle)

你可能感兴趣的:(笔记,分享与探讨)