Есть ли способ найти путь к приложению со стандартными библиотеками?

Я хотел бы знать, возможно ли найти каталог установки приложения под Windows 7, например MS Excel, со стандартными библиотеками python 2.7. Я имею в виду, он не должен использовать какой-либо pywin32 или xlrd и т. Д.

Может быть, он будет искать реестр, чтобы найти путь установки?

1 ответ

Решение

Это может быть довольно сложно, однако одним из подходов будет поиск места запуска exe в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\foo.exe

Таким образом, что-то вроде этого (у меня нет Windows на этом компьютере, поэтому редактирование приветствуется, если найдены ошибки;), код должен быть совместим с Python 2 и 3):

try:
    import winreg
except ImportError:
    import _winreg as winreg

handle = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
    r"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe")

num_values = winreg.QueryInfoKey(handle)[1]
for i in range(num_values):
    print(winreg.EnumValue(handle, i))

На Python 2 модуль называется _winreg, но winreg на питоне 3.

Другие вопросы по тегам