有时候有些文件夹被恶意的搞成拒绝访问, 这个时候会导致程序安装失败或者访问失败。所以首先要修改这个文件夹的权限。
TCHAR szUserName[MAX_PATH] = {0};
DWORD dwSize = MAX_PATH;
GetUserName(szUserName, &dwSize);
CString strCmd;
strCmd.Format(L"/c Cacls \"%s\" /t /e /c /g \"%s\":f", L"C:\\Program Files\\Baidu\\Hao123Desk", szUserName);
SHELLEXECUTEINFO ShExecInfo;
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS ;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = L"cmd.exe";
ShExecInfo.lpParameters = strCmd;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
BOOL ret = ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess, INFINITE);
CloseHandle(ShExecInfo.hProcess);
if (!ret)
{
DWORD dwError = GetLastError();
CString strError;
strError.Format(L"Error: %d", dwError);
MessageBox(0,strError,0,0);
}
上面的程序就是调用命令行修改了当前用户对Hao123Desk文件夹的访问权限。