win32gui激活、关闭窗口方法

win32gui模块可以控制窗口的属性,如果想激活某个窗口,一般先获取这个窗口的名字,如下代码可以打印出目前系统开启的所以程序窗口及名称:

import win32gui,win32com.client
def get_hwnd_dic(hwnd, hwnd_title):
    if (win32gui.IsWindow(hwnd)
            and win32gui.IsWindowEnabled(hwnd)
            and win32gui.IsWindowVisible(hwnd)
            and win32gui.GetWindowText(hwnd)):
        hwnd_title[f"{hwnd}"] = win32gui.GetWindowText(hwnd)
def get_hwnd():
    """
    :return: {hwnd:title}
    """
    hwnd_title = {}
    win32gui.EnumWindows(get_hwnd_dic, hwnd_title)
    return hwnd_title
#获取所有窗口句柄
hwndJson = get_hwnd()
print(hwndJson)

找到我们要的窗口名称后,我们用FindWindow方法获取句柄,handle为上面查到的名称:

hwnd= win32gui.FindWindow(None, handle)

接下来把这个窗口置顶显示,有一个需要关注的问题,如果之前有对窗口坐标进行计算,一定要在激活后重新计算,否则会有bug,此时顶点坐标为-32000。

shell = win32com.client.Dispatch("WScript.Shell")
#先发送一个alt key事件
shell.SendKeys('%')
# 设置为当前活动窗口
win32gui.SendMessage(hwnd, win32con.WM_SYSCOMMAND, win32con.SC_RESTORE, 0)
win32gui.SetForegroundWindow(hwnd)

关闭窗口这样写:

hwnd= win32gui.FindWindow(0,hwnd_name)
win32gui.PostMessage(hwnd,win32con.WM_CLOSE,0,0)

有时候我们希望最小化窗口而不是关闭它,可以使用如下命令

hwnd= win32gui.FindWindow(0,hwnd_name)
win32gui.ShowWindow(hwnd, win32con.SW_SHOWMINIMIZED)#最小化

除此之外,我们还可以利用win32com.client模块执行Excel里面的VBA:

import win32com.client as win32
def run_vba(vba,filename):
    #制作全天单量
    excel = win32.Dispatch('Excel.Application') #需要安装Excel
    excel.Visible = True   
    wb = excel.Workbooks.Open(filename) #文件路径,打开指定excel文件
    excel.Application.Run(vba)

以上为win32gui常见窗口操作方法,对你有用的话欢迎点赞收藏哦。

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示意味着你的Python环境中缺少win32gui模块。win32gui是一个Python模块,它提供了访问Windows GUI的接口。如果你需要使用win32gui模块,你需要安装pywin32模块。你可以使用pip命令来安装pywin32模块,如下所示: pip install pywin32 安装完成后,你就可以在Python脚本中使用win32gui模块了。 ### 回答2: "No module named 'win32gui'" 这个错误通常意味着找不到名为 'win32gui' 的模块。 win32guiPythonWindows 系统上操作图形用户界面(GUI)的模块,它提供了一些函数和方法用于创建、管理和操作窗口、菜单、对话框和其他 GUI 元素。这个模块通常用于编写桌面应用程序或自动化脚本。 出现 "No module named 'win32gui'" 错误的原因可能是你的 Python 环境缺少了 pywin32 库或没有正确安装。 解决这个问题的方法是先确保你已经安装了 pywin32 库。你可以通过运行命令 `pip install pywin32` 在命令行中安装它。如果你在一个虚拟环境中工作,需要激活虚拟环境后再运行该命令。 如果你已经安装了 pywin32,但仍然出现这个错误,可能是因为 Python 解释器无法找到该库。你可以尝试以下方法来解决: 1. 确保你的 Python 解释器的路径已正确配置。你可以在命令行中运行 `python` 命令,然后键入 `import win32gui` 看是否仍然报错。如果没有报错,则路径配置正确,只是在其他地方出现了问题。 2. 检查你的运行环境。在某些情况下,特别是在使用 IDE(集成开发环境)时,可能会导致模块无法找到。尝试在不同的环境中运行你的代码,或者尝试在命令行中运行脚本以查看是否仍然报错。 如果以上方法仍然无法解决问题,你可以尝试卸载并重新安装 pywin32。确保你从可信的来源下载正确版本的 pywin32 并按照说明进行安装。 总结:出现 "No module named 'win32gui'" 错误是因为缺少或未正确安装 pywin32 库。通过安装或重新安装 pywin32 并检查 Python 解释器的路径配置来解决这个问题。 ### 回答3: "No module named 'win32gui'"是一种Python错误消息,表示在您的代码中使用了win32gui模块,但该模块在您的环境中并未安装或找不到。 win32gui模块是一个Python扩展模块,用于访问Windows系统的图形用户界面。它通常用于控制窗口、对话框、按钮等GUI元素的操作。 要解决此错误,您需要安装win32gui模块。以下是一些可能的解决方法: 1. 检查模块是否已安装:首先,确保您的环境中已安装了Python win32gui模块。您可以使用pip命令来安装它。在命令行中运行以下命令: `pip install pywin32` 这将安装pywin32库,其中包括win32gui模块。 2. 检查模块名称拼写:如果确保已安装了win32gui模块,确保在代码中正确拼写了模块名称,并且没有任何大小写错误。 `import win32gui` 3. 检查Python版本:某些版本的win32gui模块可能与特定版本的Python不兼容。请确保您正在运行与安装的pywin32版本兼容的Python版本。 4. 检查依赖模块:win32gui模块可能依赖其他模块。请确保您的环境中已安装所有必需的依赖模块,并且它们与您的Python版本兼容。 如果您尝试了上述解决方法仍然无法解决问题,请检查其他错误消息和堆栈跟踪,以获取更多的相关信息。另外,您还可以查阅官方文档、社区论坛或相关在线资源,以获取更多关于此错误的帮助和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值