我知道应用程序名称,并尝试使用安装盾来查找应用程序的安装位置和GUID。
我手动在以下位置找到了应用程序注册表值(如DisplayName,InstallLocation,UninstallString等): HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \卸载{GUID}
但是每个客户端计算机的应用程序的GUID都不同,所以我无法使用以下函数对注册表路径进行硬编码以获取这些值。 RegDBGetKeyValueEx();
如果我们知道应用程序名称,我们能否找到应用程序的GUID?
感谢。
答案 0 :(得分:1)
您可以使用与RegDBQueryKey example类似的代码列出卸载密钥:
#define UNINSTALLKEYPATH "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
listKeys = ListCreate(STRINGLIST);
RegDBQueryKey(UNINSTALLKEYPATH, REGDB_KEYS, listKeys);
然后你可以使用类似于ListGetNextItem example的代码迭代这些键来寻找合适的值:
nResult = ListGetFirstItem(listKeys, sItem);
while (nResult != END_OF_LIST)
RegDBGetKeyValueEx(UNINSTALLKEYPATH ^ sItem, ...); // check each key
nResult = ListGetNextItem(listKeys, sItem);
endwhile;
找到后,您可以利用该密钥中的任何其他信息或密钥本身的名称。 (注意:别忘了销毁清单。)
如果您了解有关此设置的其他信息,例如,如果它是MSI,则可能有更多直接方法利用Windows Installer API。