COM을 사용하여 모든 응용 프로그램의 설치 위치를 얻으려고합니다. 각 응용 프로그램의 표시 이름을 가져올 수 있습니다. 하지만 각 응용 프로그램의 설치 경로를 가져올 수 없습니다.COM에서 executbale의 설치된 응용 프로그램 경로를 얻는 방법
MY 코드 : IEnumShellItems에서 경로를 설치하는 방법에
CComPtr<IShellItem> spPrinters;
CoInitialize(nullptr);
HRESULT hresult = ::SHCreateItemFromParsingName(L"::{26EE0668-A00A-44D7-9371-BEB064C98683}\\8\\"
L"::{7B81BE6A-CE2B-4676-A29E-EB907A5126C5}", nullptr, IID_PPV_ARGS(&spPrinters));
CComPtr<IEnumShellItems> spEnum;
spPrinters->BindToHandler(nullptr, BHID_EnumItems, IID_PPV_ARGS(&spEnum));
for (CComPtr<IShellItem> spProgram; spEnum->Next(1, &spProgram, nullptr) == S_OK; spProgram.Release())
{
CComHeapPtr<wchar_t> spszName;
spProgram->GetDisplayName(SIGDN_NORMALDISPLAY, &spszName);
CString cDisplayName = spszName;
}
어떤 생각.
감사합니다.
설치된 경로로 (선택 사항) "위치"열을 의미합니까? –
예; 나는 위치를 얻고 싶다. – CrazyCoder