Python实现自动打开电脑应用

由于时间原因,有时候可能会错过某个上网课的时间段。因此想要实现自动定时启动DingDing。

新手一枚,如有不当勿喷望大佬指正。

自动打开DingDing可以由两种方法实现:

  1. 通过找出找出软件在电脑中快捷方式的位置(电脑屏幕中的坐标),使用代码模拟鼠标进行双击打开。
  2. 通过输入软件在电脑中的安装路径打开软件。

1.第一种方法:

​ 在python中,使用pip install pyautogui 安装第三方库,在此库中,可以使用pyautogui.position()获取当前鼠标放置位置的坐标。我们可以多次使用此方法来实现获取任意想要获取位置的坐标。

import pyautogui
import time
#循环执行pyautogui.position()获取不同位置坐标
while True:
    print("当前鼠标的坐标为:"pyautogui.position())
    time.sleep(1)#设置打印的时间间隔

多次执行结果:

Python实现自动打开电脑应用_第1张图片
在使用此方法获取到想要打开的软件的快捷方式后,就是进行鼠标点击的模拟了

我们可以通过使用pyautogui.click(click=2)实现双击鼠标左键的效果。

通使用pyautogui.moveTo(x,y)实现鼠标的移动功能。结合鼠标的点击就可以进行自动的打开电脑应用的功能了。

import pyautogui
import time
def AutoOpen():
    startPosition = (327,164)#鼠标需要移动的位置
    endPosition = (306,216)
    position=[startPosition,endPosition]
    for i in position:
        pyautogui.moveTo(i)#控制鼠标移动
        pyautogui.click(clicks=2)#实现鼠标双击
        time.sleep(3)
if __name__ == '__main__':
    AutoOpen()

需要注意的是:本方法不能再代码的编译器占满整个屏幕的时候使用,那样获取的坐标位置为编译器中的位置,位置虽然通用,但是不能实现点击应用的功能,要点击的应用不能被编译器所覆盖。只有这样才能实现点击功能。

2.第二种方法

获取文件的安装路径,找到后缀为.exe的可执行的文件,使用os.startfile(Path)打开文件(os库为自带库无需安装)Path=“F:\XXX\XXX.exe”

import os 
Path = r'F:\DingDing\DingtalkLauncher.exe'
os.startfile(Path)

通过上面三行代码足以打开需要打开的文件。

import pyautogui
import time
import os
def AutoOpen(Path):
    os.startfile(Path) #os.startfile()打开外部应该程序,与windows双击相同
    pyautogui.moveTo(306, 216)#pyautogui.moveTo()将鼠标移动到指定位置
    time.sleep(6)
    pyautogui.click(clicks=2)#鼠标点击,实现鼠标双击
if __name__ == '__main__':
    Path=r'F:\DingDing\DingtalkLauncher.exe'
    AutoOpen()

此方法如果不涉及点击事件的模拟则没有要求,如果需要点击则同上,不能覆盖住要点击的位置。

3.定时打开

在自动打开的功能实现后,就是简单的设置自动打开的时间了,通过使用time 库,获取当前时间。自己可以设置一个需要打开的时间,通过对比当前时间就能实现定时自动打开的功能了。

完整代码:

import pyautogui
import time

def open_app(Path):
    os.startfile(Path) #os.startfile()打开外部应该程序,与windows双击相同
    pyautogui.moveTo(306, 216)#pyautogui.moveTo()将鼠标移动到指定位置
    time.sleep(6)
    pyautogui.click(clicks=2)#鼠标点击,实现鼠标双击
def AutoOpen():
    startPosition = (327,164)
    endPosition = (306,216)
    position=[startPosition,endPosition]
    for i in position:
        pyautogui.moveTo(i)
        pyautogui.click(clicks=2)
        time.sleep(3)
if __name__ == '__main__':
    Path=r'F:\DingDing\DingtalkLauncher.exe'
    times = "2020-xx-xx xx:xx"#设置需要打开的时间,此时间看自己需求是否精确到秒("2020-xx-xx xx:xx:xx")
    while True:
        nowtime = time.strftime('%Y-%m-%d %H:%M')
        if (times == nowtime):
            open_app(Path)
            break
        else:
            print(time.strftime('%Y-%m-%d %H:%M:%S'))
            time.sleep(10)

你可能感兴趣的:(笔记,python)