如题,答案是:翻注册表。windows系统中有两个子键存放了所有程序的安装信息:1.HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\CompatibilityAssistant\Store下面是python代码示例,用于查找安装路径360浏览器:importwin32con,win32apideffind_360se_path():upper_keyword='360SE.EXE'path=Nonesub_key=r'Software\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\CompatibilityAssistant\Store'key=win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,sub_key,0,win32con.KEY_READ)info=win32api.RegQueryInfoKey(key)foriinrange(0,info[1]):value=win32api.RegEnumValue(key,i)如果值[0]。upper().endswith(upper_keyword):path=value[0]breakwin32api.RegCloseKey(key)returnpath2,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths以下是查找浏览器安装路径的python代码360例子:importwin32con,win32apideffind_360se_path():upper_value_keyword='360SE.EXE'upper_item_name_keyword='360SE6.EXE'path=Nonesub_key1=r'SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths'key1=win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,sub_key1,0,win32con.KEY_READ)info1=win32api.RegQueryInfoKey(key1)fori在范围(0,信息1[0])中:key_name=win32api.RegEnumKey(key1,i)如果key_name.upper()==upper_item_name_keyword:sub_key2=sub_key1+'\\'+key_namekey2=win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,sub_key2,0,win32con.KEY_READ)info2=win32api.RegQueryInfoKey(key2)forjinrange(0,info2[1]):key_value=win32api.RegEnumValue(key2,j)[1]ifkey_value.upper()。endswith(upper_value_keyword):path=key_value中断win32api.RegCloseKey(key2)中断win32api.RegCloseKey(key1)返回路径
