Sunday, March 23, 2008

find location of installed application by app name

HRESULT hr = S_OK;
CComPtr spDocklet;
CRegKey rkAppPaths;
CRegKey rkApp;
WCHAR szPath[MAX_PATH];
ULONG cchPath;
CAtlString szAppPath;
LONG lRes;

lRes = rkAppPaths.Open(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths", KEY_READ);
if(lRes != ERROR_SUCCESS)
{
goto Cleanup;
}

lRes = rkApp.Open(rkAppPaths, pszApp);
if(lRes != ERROR_SUCCESS)
{
goto Cleanup;
}

cchPath = sizeof(szPath) / sizeof(WCHAR);
lRes = rkApp.QueryStringValue(L"Path", szPath, &cchPath);
if(lRes != ERROR_SUCCESS)
{
goto Cleanup;
}

szAppPath.Format(L"%s%s", szPath, pszApp);

No comments: