Есть ли способ найти путь к приложению со стандартными библиотеками?
Я хотел бы знать, возможно ли найти каталог установки приложения под 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.