【使用Python编写游戏辅助工具】第四篇:Windows窗口操作

image.png

前言

这里是【使用Python编写游戏辅助工具】的第四篇:Windows窗口操作。本文主要介绍使用Python来实现Windows窗口的各种操作。

Windows窗口操作是游戏辅助功能中不可或缺的一部分。

Windows窗口操作指的是与Windows操作系统中的窗口进行交互和控制的操作:

  • 后台挂机: 有些游戏需要前台挂机才会有收益。但是我想做的是后台挂机也有收益,这个就是刚需;
  • 隐藏窗口: 在(学习&上学&上班)使用电脑时候,有时候压力大了想开始游戏放松一下,突然(家长&老师&领导)走了过来,这时候即使是最小化游戏,在任务栏也还能看到游戏的图标。所以非常需要隐藏游戏窗口。

文章脉络⚡⚡

本文的流程和功能如下图所示:

  • 使用Python去操作Windows的窗口;
  • 如将窗口设置到最前台、显示窗口、隐藏窗口、最大化最小化和关闭窗口等。
Windows窗口操作
前台&置顶 窗口
显示窗口
隐藏窗口
其它操作

前台窗口、隐藏窗口和显示窗口是在窗口管理和用户交互方面常用的功能。它们的作用如下:

  1. 前台窗口(Foreground Window):

    • 作用:将指定的窗口设置为最前台,使其处于活动状态并显示在其他窗口之上。

    • 使用场景:当你希望某个窗口在其他窗口之上显示,并且接收用户的输入和操作时,可以将其设置为前台窗口。

  2. 隐藏窗口(Hide Window):

    • 作用:隐藏指定的窗口,使其在屏幕上不可见。

    • 使用场景:当你希望临时隐藏某个窗口,不让其显示在屏幕上,但并不销毁该窗口,以便在需要时重新显示。

  3. 显示窗口(Show Window):

    • 作用:显示或恢复被隐藏的窗口,使其在屏幕上可见。

    • 使用场景:当你需要重新显示之前隐藏的窗口时,可以使用此功能。

这些功能对于窗口管理和用户体验有着重要的作用。通过隐藏窗口,你可以在不删除窗口的情况下暂时将其隐藏起来,避免在屏幕上占用空间。通过设置前台窗口,你可以确保某个窗口在其他窗口之上显示,并接受用户的操作。而显示窗口则允许你重新显示之前被隐藏的窗口,使其再次可见。

摸鱼挂机必备功能!!!

系列文章脉络

系列文章内容大体如下,后续可能会更新新的文章。

  • 点击直达:【使用Python编写游戏辅助工具】第一篇:概述

  • 点击直达:【使用Python编写游戏辅助工具】第二篇:键盘监听的应用

  • 点击直达:【使用Python编写游戏辅助工具】第三篇:鼠标连击器的实现

  • 点击直达:【使用Python编写游戏辅助工具】第四篇:Windows窗口操作

  • 点击直达:【使用Python编写游戏辅助工具】第五篇:打造交互式游戏工具界面:PySide6/PyQT高效构建GUI工具

知识点📖📖

库和模块描述
pywin32提供了与Windows操作系统交互的功能,如操作窗口、注册表等(这里用于窗口操作)

据官网介绍,pywin32是Python for Win32 (pywin32)的扩展,它提供了从 Python 访问许多 Windows API 的途径。

安装依赖

pip install pywin32

安装完成之后,pywin32有多个模块

import win32api  # 窗口和系统函数
import win32gui  # 窗口界面函数
import win32con  # 常量定义
import win32process  # 进程函数

但是在这里,我们只需要使用 win32guiwin32con即可。

使用步骤如下:

  1. 使用 win32gui.FindWindow()查找窗口句柄;
  2. 使用 win32gui.SetForegroundWindow() 设置前台窗口;
  3. 使用 win32gui.ShowWindow() 进行显示和隐藏窗口;
  4. 使用 win32gui.CloseWindow() 进行关闭窗口;
  5. 使用win32gui.ShowWindow 进行最大化和最小化窗口;

这个模块就可以很好的实现本文的主题。

Windows窗口操作✨✨

需要注意的是,系统的学习还请看官方文档,这里只是对pywin32功能的一些介绍,并不够全面。

获取窗口句柄

# -*- coding: utf-8 -*-
# Name:         win_operate.py


import win32gui
import win32con


def get_window_handle(class_name=None, title=None):
    """
    通过类名和标题查找窗口句柄.

    Args:
        class_name(str|None):窗口的类名. 默认为None.
        title(str|None):窗口的标题. 默认为None.

    Returns:
        int: 返回找到的窗口句柄,如果没有找到则返回0.
    """
    return win32gui.FindWindow(class_name, title)

窗口设置前台🎃🎃

def set_top_window(title=None):
    """
    窗口置顶

    Args:
        title(str|None):窗口的标题. 默认为None.

    Returns:
        None
    """
    hwnd = get_window_handle(title=title)
    if hwnd:
        win32gui.SetForegroundWindow(hwnd)


if __name__ == '__main__':
    win_title = '咸鱼之王'
    set_top_window(title=win_title)

运行效果:

显示窗口🎣🎣

显示窗口 结合 设置前台窗口,将窗口展示出来。

def show_window(title=None):
    """
    显示窗口

    Args:
        title(str|None):窗口的标题. 默认为None.

    Returns:
        None
    """
    hwnd = get_window_handle(title=title)
    if hwnd:
        win32gui.ShowWindow(hwnd, win32con.SW_SHOW)


if __name__ == '__main__':
    win_title = '咸鱼之王'
    show_window(title=win_title)
    set_top_window(title=win_title)

运行效果:

隐藏窗口🎶🎶

隐藏窗口 结合 设置前台窗口,将窗口显示出来。达到窗口不显示,但又在运行的状态。

def hide_window(title=None):
    """
    隐藏窗口

    Args:
        title(str|None):窗口的标题. 默认为None.

    Returns:
        None
    """
    hwnd = get_window_handle(title=title)
    if hwnd:
        win32gui.ShowWindow(hwnd, win32con.SW_HIDE)
        

if __name__ == '__main__':
    win_title = '咸鱼之王'
    hide_window(title=win_title)
    set_top_window(title=win_title)
    

运行效果:

关闭窗口🤞🤞

def close_window(title=None):
    """
    关闭窗口

    Args:
        title(str|None):窗口的标题. 默认为None.

    Returns:
        None
    """
    hwnd = get_window_handle(title=title)
    if hwnd:
	    win32gui.CloseWindow(hwnd)


if __name__ == '__main__':
    win_title = '咸鱼之王'
    close_window(title=win_title)

最大化窗口🤿🤿

def maximize_window(title=None):
    """
    窗口最大化

    Args:
        title(str|None):窗口的标题. 默认为None.

    Returns:
        None
    """
    hwnd = get_window_handle(title=title)
    if hwnd:
	    win32gui.ShowWindow(hwnd, win32con.SW_MAXIMIZE)
        

if __name__ == '__main__':
    win_title = '咸鱼之王'
    maximize_window(title=win_title)
    

最小化窗口🎉🎉

def minimize_window(class_name=None, title=None):
    """
    窗口最小化

    Args:
        title(str|None):窗口的标题. 默认为None.

    Returns:
        None
    """
    hwnd = get_window_handle(title=title)
    if hwnd:
	    win32gui.ShowWindow(hwnd, win32con.SW_MINIMIZE)


if __name__ == '__main__':
    win_title = '咸鱼之王'
    minimize_window(title=win_title)

总结🎈🎈

当使用Python编写游戏辅助工具时,Windows窗口操作是一个重要的方面。本文提供了关于Windows窗口操作的详细介绍。

文章首先概述了Windows窗口操作的定义和目的,以及在游戏中可能需要使用的窗口操作。接着,讨论了如何使用Python库进行窗口查找和识别,包括通过窗口标题、类名等特征进行查找。

文章进一步介绍了窗口操作技巧,包括移动、调整大小和最小化窗口,以及获取窗口句柄和属性信息的方法。这些技巧对于自定义窗口行为和用户界面设计非常有用。

总而言之,本文通过详细介绍Windows窗口操作的概念,帮助读者理解和应用Python在游戏辅助工具开发中的窗口操作功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/114172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】安装(Linuxwindow)及Redis的常用命令

Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。 它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复…

【Java初阶练习题】-- 循环+递归练习题

循环练习题02 打印X图形计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值输出一个整数的每一位如:123的每一位是3,2,1模拟登录使用方法求最大值求斐波那契数列的第n项。(迭代实现)求和的重载求最大值方法的重载递归求N阶乘递归求 1 2 3 ...…

C++之初始化列表详细剖析

一、初始化列表定义 初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。 class Date { public:Date(int year, int month, int day): _year(year), _month(mont…

华纳云:centos系统中怎么查看cpu信息?

在CentOS系统中,我们可以使用一些命令来查看CPU的详细信息。下面介绍几个常用的命令: 1. lscpu lscpu命令可以显示CPU的架构、型号、核心数、线程数、频率等信息。 # lscpu 执行以上命令后,会输出类似以下内容: 2. cat /proc/…

3D医学三维技术影像PACS系统源码

一、系统概述 3D医学影像PACS系统,它集影像存储服务器、影像诊断工作站及RIS报告系统于一身,主要有图像处理模块、影像数据管理模块、RIS报告模块、光盘存档模块、DICOM通讯模块、胶片打印输出等模块组成, 具有完善的影像数据库管理功能,强大…

Oil Crop Science:DAP-seq技术揭示花生中AhTWRKY24和AhTWRKY106转录因子下游调控基因

2023年6月4日,青岛农业大学草业学院宋辉教授课题组的研究成果,发表在Oil Crop Science期刊上,文章题目为Identification of the target genes of AhTWRKY24 and AhTWRKY106 transcription factors reveals their regulatory network in Arach…

【好书推荐】AI时代架构师修炼之道:ChatGPT让架构师插上翅膀

目录 前言 ChatGPT对架构师工作的帮助 快速理解和分析需求 提供代码建议和解决方案 辅助系统设计和优化 提高团队协作效率 如何使用ChatGPT提高架构师工作效率 了解用户需求和分析问题 编码实践和问题解决 系统设计和优化建议 团队协作和沟通效率提升 知识管理和文…

K8s集群

统一时间:ntpdate(都做) ntpdate -b ntp1.aliyun.com */1 * * * * /usr/sbin/ntpdate -b ntp1.aliyun.com systemctl status docker vi /etc/docker/daemon.json systemctl restart docker m: vim kubernetes.sh cat >> /etc/yum.repos.d/kubernetes.repo…

Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问

Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问 文章目录 Windows系统搭建网盘神器filebrowser结合内网穿透实现公网访问前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3…

C++动态内存检查工具 - AddressSanitizer

参考 https://www.qt.io/blog/2013/04/17/using-gccs-4-8-0-address-sanitizer-with-qt https://doc.qt.io/qt-6/qmake-variable-reference.html#qmake-lflags AddressSanitizer是gcc编译器套件的一部分(gcc版本 > 4.8),只要在编译器调用中添加-fsanitizeaddre…

AtCoder abc143

D - Triangles 排序后two pointer # -*- coding: utf-8 -*- # time : 2023/6/2 13:30 # author : yhdutongwoo.cn # desc : # file : atcoder.py # software : PyCharmimport bisect import copy import sys from sortedcontainers import SortedList from coll…

Android开发知识学习——从Retrofit原理来看HTTP

文章目录 Retrofit 使用方法简介Retrofit 源码结构总结扔物线读源码的思路与方式 Retrofit 使用方法简介 导包 implementation com.squareup.retrofit2:retrofit:最新版本创建一个 interface 作为 Web Service 的请求集合,在里面用注解 (Annotation&…

Spring Boot整合Swagger

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

新建Git仓库后!如何将本地项目直接推送上到git仓库中的详细教程!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Git新建仓库二、来到你的本地仓库 前言 我们在git新建仓库后,如何直接在本地的项目文件夹中直接推送到git仓库中呢!那么下面是详细…

HTTP 协议请求头 If-Match、If-None-Match 和 ETag

概述 在 HTTP 协议中,请求头 If-Match、If-None-Match、If-Modified-Since、If-Unmodified-Since、If-Range 主要是为了解决浏览器缓存数据而定义的请求头标准,按照协议规范正确的判断和使用这几个请求头,可以更精准的处理浏览器缓存&#x…

《Pytorch新手入门》第二节-动手搭建神经网络

《Pytorch新手入门》第二节-动手搭建神经网络 一、神经网络介绍二、使用torch.nn搭建神经网络2.1 定义网络2.2 torch.autograd.Variable2.3 损失函数与反向传播2.4 优化器torch.optim 三、实战-实现图像分类(CIFAR-10数据集)3.1 CIFAR-10数据集加载与预处理3.2 定义网络结构3.3…

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。 二、下载和配置 2.1 SQLite下载…

Clion 下载、安装、使用教程,附详细图文(2023年亲测可用)

文章目录 一、下载Clion二、安装教程三、安装MinGW方法一、直接下载MinGW安装① 下载MinGW② 配置Clion 方法二、使用Dev cpp安装① 安装Dev cpp② 配置Clion 四、常用快捷键 大家好,今天为大家带来的是 Clion 的下载,安装,使用教程&#xff…

HTML样式CSS、图像

HTML样式-CSS: CSS (Cascading Style Sheets) 用于渲染HTML元素标签的样式。CSS可以通过以下方式添加到HTML中&#xff1a;1&#xff09;、内联方式&#xff1a;在HTML元素中使用“style”属性&#xff1b;2&#xff09;、内部样式表&#xff1a;在HTML文档头部<head>区…

揭秘!AI加持双十一电商盛宴,带你解锁更多营销新玩法

从2009年到2023年&#xff0c;每年年终的双11大促都是如期而至&#xff0c;而且几乎每一次双11都能给电商行业带来创新和改变。今年是中国电商行业的第15个双11&#xff0c;也是人工智能&#xff08;AI&#xff09;在电商领域大规模应用的第一个双11。在这15年的发展历程中&…