gpt4 book ai didi

python-3.x - 如何使用Python将默认应用程序映射到Windows中的文件扩展名

转载 作者:行者123 更新时间:2023-12-04 13:30:38 25 4
gpt4 key购买 nike

我想使用文件扩展名作为参数查询Windows(例如“.jpg”),并返回任何已配置为该文件类型默认应用程序的应用程序窗口的路径。

理想情况下,解决方案应如下所示:

from stackoverflow import get_default_windows_app

default_app = get_default_windows_app(".jpg")

print(default_app)
"c:\path\to\default\application\application.exe"

我一直在研究winreg内置库,该库包含Windows的注册表信息,但是我在理解其结构时遇到了麻烦,并且文档非常复杂。

我正在运行Windows 10和Python 3.6。

有没有人有什么帮助的想法?

最佳答案

注册表不是一个结构简单的简单数据库。 window
Shell执行程序具有一些非常复杂的逻辑。但是对于简单的情况,这应该可以解决问题:

import shlex
import winreg

def get_default_windows_app(suffix):
class_root = winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, suffix)
with winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, r'{}\shell\open\command'.format(class_root)) as key:
command = winreg.QueryValueEx(key, '')[0]
return shlex.split(command)[0]

>>> get_default_windows_app('.pptx')
'C:\\Program Files\\Microsoft Office 15\\Root\\Office15\\POWERPNT.EXE'

尽管一定也应该添加一些错误处理。

关于python-3.x - 如何使用Python将默认应用程序映射到Windows中的文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48051864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com