要自动化打开一组相关应用程序的过程,Python脚本需要1)始终在引导时在后台运行。2)每隔几秒检查一次触发器软件是否已打开。3)启动关联的应用程序。4)在应用程序中执行任何操作,例如为我创建新项目。
我以前没有这方面的经验,但这与在我的Windows pc上优化一些东西有关。
任何有知识和礼貌的人都可以帮助,而且有时间,请这样做。谢谢。
发布于 2019-06-25 08:54:12
让我们一步一步地解决你的问题:
始终在引导时在后台运行。
pyw
文件(请注意最后的w
)。常规.py
和.pyw
文件的不同之处在于,.py
调用控制台(~命令行)等效工具执行并在前台执行,而.pyw
文件始终在后台运行(即控制台不会显示)。因此,它不需要您始终手动打开控制台来执行脚本,因为脚本将始终在后台运行。shell:common startup
并按enter键来访问启动文件夹)(向此文件夹添加文件需要根用户权限。如果您无法访问该文件夹,则C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
是其在windows 10上的默认路径。检查所需的程序是否已打开?
为此,使用以下代码:
import win32com.client
import os
# This infinite loop ensures that the program run's at all times
while 1:
# Halting the execution of the program for 5 seconds
# This will act as a bottleneck to reduce resource usage of this program
os.sleep(5)
wmi=win32com.client.GetObject('winmgmts:')
# change the value of this variable with your application name
program_name = "chrome.exe"
for p in wmi.InstancesOf('win32_process'):
if p.Name == program_name:
# Add code for launching your desired application from here
上面的代码将检查所有当前正在运行的进程,并尝试将它们的名称与program_name变量进行匹配。将变量program_name的值更改为要检查的程序的名称,该程序是否正在运行。(此过程将每五秒发生一次)
备注:-
chrome.exe
单独作为多个进程运行),那么对于给定的名称,p.Name == program_name
将多次为真。program_name
变量提供值时要注意大小写。启动关联的应用程序
有十几种方法可以在您的操作系统中打开您选择的应用程序。选择取决于您愿意在程序执行后对其执行什么操作。
对于您的用例,我推荐使用subprocess
库的Popen
,因为您希望在打开应用程序后为其提供不同的输入。
在应用程序中执行任何操作,例如为我创建新项目。
This问题肯定就是你要找的。也有不同的方法来完成这一点,其中的选择/路径取决于用例(就像上一个)。
https://stackoverflow.com/questions/56745317
复制相似问题