要做一个win32程序,点击运行acad.exe,在开发机器上的安装路径是d:\program files\acad2000\acad.exe
用regedit搜索到注册表位置是
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\acad.exe\shell\open\command]
@="\"D:\\Program Files\\ACAD2000\\acad.exe\" \"%1\""现在要用WinExec来执行该程序,
客户机上的安装路径就未知了,
但可以从注册表上用acad.exe搜索到。请问,如何用vc代码实现?
问题问得很乱,敬请谅解!

解决方案 »

  1.   

    他问的问题实际上就是如何取得注册表中的值:HKEY hKey;
    LONG lRes;
    TCHAR szPath[MAX_PATH] = {0};
    DWORD dwBufLen = MAX_PATH;
    lRes = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Classes\\Applications\acad.exe\\\shell\\open\\command", &hKey);
    if(lRes != ERROR_SUCCESS)
    {
    return ;
    }
    DWORD dwType = REG_SZ;
    lRes = RegQueryValueEx(hKey, _T(""), NULL, &dwType, (LPBYTE)szPath, &dwBufLen);
    RegCloseKey(hKey);