SHELLEXECUTEINFO shExecInfo;
shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shExecInfo.fMask = NULL;
shExecInfo.hwnd = NULL;
shExecInfo.lpVerb = _T("runas");
shExecInfo.lpFile = filePath;
shExecInfo.lpParameters = NULL;
shExecInfo.lpDirectory = NULL;
shExecInfo.nShow = SW_MAXIMIZE;
shExecInfo.hInstApp = NULL;
ShellExecuteEx(&shExecInfo);
Если файл-путь является файлом temp, загруженным из Интернета, ShellExecuteEx потерпит неудачу. Но если filepath является обычным именем файла, таким как «блокнот», он работает.Как отключить файл установки tempory?
Я пришел к выводу, что shellexecute нуждается в правильном имени расширения, но приложение с обычными привилегиями не может записать исполняемый файл на системный partion, такой как c: \ users \ xxx \ local \ temp \ xxx.exe.
Код ошибки: ERROR_NO_ASSOCIATION.
Пожалуйста, помогите мне решить это противоречие.