当前位置:   article > 正文

PyCharm中书写python语言自动启动指定软件_pyautogui启动软件

pyautogui启动软件

利用python实现想要的结果,需要安装PyCharm软件,我使用的是PyCharm Community Edition 2023.1,下载安装请参考以下链接中的内容:

Python 3 教程 | 菜鸟教程 (runoob.com)icon-default.png?t=N7T8https://m.runoob.com/python3/安装完成之后就可以开始进行编程了:

首先打开软件,进行创建新的项目:

标注1是保存的文件夹的名称,这个你可以随意取,位置按照你的习惯放,标注2点击就可创建了。

完成之后,你可以在左侧见到项目的所包含的文件。

这是我完成编程之后的文件图:

标注1就是我整个项目的文件,那个图片是我运行了代码所产生的图片;标注2就是我的外部库了,Python 3.7是解释器,下载安装完成之后要配置解释器,按照链接中的内容可以完成。

完成上述工作之后,在.py文件中编写代码。

我要完成的是利用python语言满足条件自动启动指定软件,那么应当怎样写呢?以下是我的思路:

你想进行自动打开指定软件,那么就需要引入相应模块,代码为:

import subprocess

这段代码作用是用于启动应用程序。

应用程序打开之后,有些可能没有完成打开,需要点击启动的按钮才能完全启动,比如一些游戏。于是我在代码中添加了此模块。

import pyautogui

此模块用于模拟鼠标和键盘操作。

由于我是利用截取屏幕计算其中的相应颜色的像素占比,我引入了Image模块。

from PIL import Image

用于处理截取的图像。

(注:python语言引入模块和C语言中的头文件类似,但是python的模块可以被执行。)

完成相应模块的引入,接下来就是对启动条件和启动软件的相应程序的编写。

首先我先写了软件启动的相应情况:

  1. def start_application(application_path):
  2. try:
  3. subprocess.Popen(application_path)
  4. print(f"成功启动应用程序:{application_path}")
  5. except Exception as e:
  6. print(f"启动应用程序失败:{e}")

解释:这里定义了一个start_application的函数,用于启动应用程序,其中application_path参数表示应用程序的路径。

try捕捉相应情况,如果使用了subprocess模块中的Popen函数启动程序,打印成功启动应用程序,并显示出路径。而出现异常,打印启动应用程序失败,并将异常赋值给e。(注:这里的e可以随意更改为你想要的变量,但是为了保证代码的可读性和可维护性,常用e来表示,因为e是异常(exception)的缩写)。

这是我启动程序发生的异常情况:

从上图可以看出,我打印了屏幕中白色像素占比,那么我就需要进行对截取的图像计算白色像素占比,以下是代码:

  1. def calculate_white_pixel_percentage(image):
  2. width, height = image.size
  3. white_pixels = 0
  4. for x in range(width):
  5. for y in range(height):
  6. pixel = image.getpixel((x, y))
  7. if pixel == (255, 255, 255): # 假设白色像素的RGB值为(255, 255, 255)
  8. white_pixels += 1
  9. total_pixels = width * height
  10. white_pixel_percentage = (white_pixels / total_pixels) * 100
  11. return white_pixel_percentage

解释:在本段代码中定义了一个calculate_white_pixel_percentage函数,接收参数Image数据,表示要计算的图像。

将图像的宽度和高度分别赋值给参数width、height,white_pixels = 0表示开始储存的白色像素为0;

接下来就是数白色像素的数量:前两句代码都是遍历图像的宽度和高度,这其实就是数每一个像素,然后将指定坐标的像素赋值给pixel,其次进行判断,我这里设白色像素的RGB值为(225,225,225)。(注:一般情况下,白色像素的RGB值就是(225,225,225),但是有一些特殊的图像处理库可能不一样,记得查询相关资料,获得数值。)判断完成之后,如果是white_pixels加一,说明有一个白色像素存入,反之没有存入。

最后进行计算占比:先计算总量,其次计算白色像素占比,最后返回白色像素的占比。

完成了条件计算和应用程序情况说明,最后写出主程序来完成整个代码的实现。

这是我的主程序:

  1. if __name__ == "__main__":
  2. application_path = "D:/原神/Genshin Impact/launcher.exe" # 替换为您想要启动的应用程序的路径
  3. # 使用pyautogui的hotkey()函数切换屏幕显示
  4. pyautogui.hotkey("alt", "tab")
  5. # 等待切换后的屏幕稳定
  6. pyautogui.sleep(1)
  7. screenshot = pyautogui.screenshot()
  8. screenshot.save("screenshot.png")
  9. image = Image.open("screenshot.png")
  10. white_pixel_percentage = calculate_white_pixel_percentage(image)
  11. print(f"屏幕中白色像素占比:{white_pixel_percentage}%")
  12. if white_pixel_percentage > 0.1:
  13. start_application(application_path)
  14. # 加入延迟以确保应用程序完全启动
  15. pyautogui.sleep(1)
  16. # 假设按钮的位置是(x, y),使用pyautogui的click()函数模拟鼠标点击
  17. button_position = (1395, 821) # 替换为您的按钮坐标
  18. pyautogui.click(button_position)

我在其中写了一些注释,可以查看注释得知其中的作用,其中

screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")
image = Image.open("screenshot.png")

这三句代码,先是对屏幕进行截图,然后进行存储,最后赋值给image参数。

完成之后,计算白色像素占比,并打印白色像素占比情况。

接下来就是判断,如果占比大于设定值,就启动应用程序。

这里呢,因为我启动的是原神的启动器,有着按钮才能进入,所以于是有写了一个python代码来获取按钮坐标,并填入其中,实现打开启动器,并自动进入游戏。

(注意:要获取按钮代码,一定要自行打开应用程序,然后打开pycharm并将它缩小,反正能够看到按钮,其次将鼠标放到按钮上,按shift+f10,运行程序,获取坐标。)

提醒:有些应用程序的启动需要管理员权限,所以启动pycharm时利用管理员权限启动,或者在代码中添加权限。

要想获取代码,请查看我上传的代码资源。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/74704
推荐阅读
相关标签
  

闽ICP备14008679号