Python实现自动打开电脑应用的示例代码


Posted in Python onApril 17, 2020

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

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

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

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

1.第一种方法:

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

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

多次执行结果:

Python实现自动打开电脑应用的示例代码

在使用此方法获取到想要打开的软件的快捷方式后,就是进行鼠标点击的模拟了

我们可以通过使用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自动化打开网页

from selenium.webdriver.firefox.options import Options as FOptions
from selenium.webdriver.chrome.options import Options as Foptions
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains


from selenium.webdriver.firefox.firefox_profile import FirefoxProfile

#firefox设置代理
profile = FirefoxProfile()
# 激活手动代理配置(对应着在 profile(配置文件)中设置首选项)
profile.set_preference("network.proxy.type", 1)
# ip及其端口号配置为 http 协议代理
profile.set_preference("network.proxy.http", "127.0.0.1")
profile.set_preference("network.proxy.http_port", 8080)

# 所有协议共用一种 ip 及端口,如果单独配置,不必设置该项,因为其默认为 False
profile.set_preference("network.proxy.share_proxy_settings", True)

#chrome设置代理
# options = FOptions()


options = FOptions()
chrome_options = webdriver.FirefoxOptions()
chrome_options.add_argument('--proxy-server=http://127.0.0.1:8080')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('disable-infobars')
browser = webdriver.Firefox(executable_path="D:/geckodriver.exe",firefox_profile=profile)

browser.maximize_window()
browser.get('https://account.dianping.com/login?redir=http%3A%2F%2Fwww.dianping.com%2F')

button = browser.find_element_by_xpath('/html/body/div/div[2]/div[5]/span')
button.click()

到此这篇关于Python实现自动打开电脑应用的示例代码的文章就介绍到这了,更多相关Python 自动打开电脑应用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python聊天室实例程序分享
Jan 05 Python
python中range()与xrange()用法分析
Sep 21 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
pandas数值计算与排序方法
Apr 12 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
Python中SQLite如何使用
May 27 Python
python3实现无权最短路径的方法
May 12 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 #Python
Python读取excel文件中带公式的值的实现
Apr 17 #Python
在Matplotlib图中插入LaTex公式实例
Apr 17 #Python
python中for in的用法详解
Apr 17 #Python
解决Jupyter无法导入已安装的 module问题
Apr 17 #Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 #Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 #Python
You might like
PHP语法速查表
2006/12/06 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
jquery.ui.progressbar 中文文档
2009/11/26 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
python opencv3实现人脸识别(windows)
2018/05/25 Python
python 构造三维全零数组的方法
2018/11/12 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
Python 实现数组相减示例
2019/12/27 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
工商管理系学生的自我评价分享
2013/11/29 职场文书
世博会口号
2014/06/20 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis