智能打开 Windows 上已安装的应用
Open installed apps on Windows intelligently
我正在编写一个语音助手来自动化我的电脑 运行 Windows 11,我想使用语音命令打开应用程序,我不想对每个已安装应用程序的 .exe
路径。有什么方法可以获取应用程序名称及其 .exe
路径的字典。我目前可以获取 运行 个应用程序并使用以下方法关闭它们:
def close_app(app_name):
running_apps=psutil.process_iter(['pid','name'])
found=False
for app in running_apps:
sys_app=app.info.get('name').split('.')[0].lower()
if sys_app in app_name.split() or app_name in sys_app:
pid=app.info.get('pid')
try:
app_pid = psutil.Process(pid)
app_pid.terminate()
found=True
except: pass
else: pass
if not found:
print(app_name + " is not running")
else:
print('Closed ' + app_name)
这可以通过以下代码完成:
import os
def searchfiles(extension, folder):
with open(extension[1:] + "file.txt", "w", encoding="utf-8") as filewrite:
for r, d, f in os.walk(folder):
for file in f:
if file.endswith(extension):
filewrite.write(f"{r + file}\n")
searchfiles('.exe', 'H:\')
灵感来自:https://pythonprogramming.altervista.org/find-all-the-files-on-your-computer/
在 Windows PowerShell there is a Get-Command utility. Finding Windows executables using Get-Command is described nicely in this issue 下。本质上它只是 运行
Get-Command *
现在您需要使用 python 中的这个来获取命令的结果作为变量。这可以通过
来完成
import subprocess
data = subprocess.check_output(['Get-Command', '*'])
这可能不是最好的,也不是完整的答案,但也许是个有用的想法。
可能同时使用 wmic 并使用 which 或 gmc 来获取路径并构建字典?
以下是一个非常基本的代码,没有完全测试。
import subprocess
import shutil
Data = subprocess.check_output(['wmic', 'product', 'get', 'name'])
a = str(Data)
appsDict = {}
x = (a.replace("b\'Name","").split("\r\r\n"))
for i in range(len(x) - 1):
appName = x[i+1].rstrip()
appPath = shutil.which(appName)
appsDict.update({appName: appPath})
print(appsDict)
我正在编写一个语音助手来自动化我的电脑 运行 Windows 11,我想使用语音命令打开应用程序,我不想对每个已安装应用程序的 .exe
路径。有什么方法可以获取应用程序名称及其 .exe
路径的字典。我目前可以获取 运行 个应用程序并使用以下方法关闭它们:
def close_app(app_name):
running_apps=psutil.process_iter(['pid','name'])
found=False
for app in running_apps:
sys_app=app.info.get('name').split('.')[0].lower()
if sys_app in app_name.split() or app_name in sys_app:
pid=app.info.get('pid')
try:
app_pid = psutil.Process(pid)
app_pid.terminate()
found=True
except: pass
else: pass
if not found:
print(app_name + " is not running")
else:
print('Closed ' + app_name)
这可以通过以下代码完成:
import os
def searchfiles(extension, folder):
with open(extension[1:] + "file.txt", "w", encoding="utf-8") as filewrite:
for r, d, f in os.walk(folder):
for file in f:
if file.endswith(extension):
filewrite.write(f"{r + file}\n")
searchfiles('.exe', 'H:\')
灵感来自:https://pythonprogramming.altervista.org/find-all-the-files-on-your-computer/
在 Windows PowerShell there is a Get-Command utility. Finding Windows executables using Get-Command is described nicely in this issue 下。本质上它只是 运行
Get-Command *
现在您需要使用 python 中的这个来获取命令的结果作为变量。这可以通过
来完成import subprocess
data = subprocess.check_output(['Get-Command', '*'])
这可能不是最好的,也不是完整的答案,但也许是个有用的想法。
可能同时使用 wmic 并使用 which 或 gmc 来获取路径并构建字典? 以下是一个非常基本的代码,没有完全测试。
import subprocess
import shutil
Data = subprocess.check_output(['wmic', 'product', 'get', 'name'])
a = str(Data)
appsDict = {}
x = (a.replace("b\'Name","").split("\r\r\n"))
for i in range(len(x) - 1):
appName = x[i+1].rstrip()
appPath = shutil.which(appName)
appsDict.update({appName: appPath})
print(appsDict)