一般軟件的可執行程序文件一般在:
示例飛書:
計算機\HKEY_CURRENT_USER\SOFTWARE\Feishu 該路徑下會有安裝路徑,以及產品名字。
但是也有這路徑下找不到,比如photoshop,
這時候就可以用到CLSID了(一般大型的軟件會寫入CLSID,因為它的驅動,服務,組件比較多,小軟件參考上面飛書)
std::wstring wszSid = getAIPath(processPath, "HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Photoshop.IndexedConversionOptions\\CLSID");
if(wszSid.isEmpty())
wszSid = getAIPath(processPath, "HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\Photoshop.IndexedConversionOptions.150\\CLSID");
std::wstring wszExePath = std::wstring.format("HKEY_CLASSES_ROOT\\CLSID\\%0\\LocalServer32").arg(clsid);
有可能寫在兩個地方去查找到photoshop對應的sid,在通過sid查找進程的路徑。