Visual Studio — функция C ++ CreateFile блокирует файл с помощью UAC

Я работаю над файлом DLL, который извлекает файл ресурсов (.exe) из него в папку TEMP и выполняет его. Проблема заключается в том, что он не может выполнить файл, если только приложение, использующее файл DLL, не имеет повышенных прав (не имеет прав администратора). Когда я открываю папку TEMP из проводника и дважды щелкаю по извлеченному файлу, я получаю приглашение UAC. И когда я нажимаю «изменить, когда появляется это уведомление», оно устанавливается по умолчанию (когда программа пытается внести изменения в ваш компьютер). И я действительно не понимаю, почему я получаю это уведомление, потому что это просто случайный файл, который запускается без прав на моем ПК, если он не извлечен из DLL. Я использую Windows 8 и Visual Studio 2013. Вот часть кода файла DLL:

    HANDLE hFile = CreateFile(exePath, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE) continue;
WriteFile(hFile, pExeResource, SizeofResource(hinstDLL, hrsrc), NULL, NULL);
CloseHandle(hFile);
if (!CreateProcess(exePath, NULL, NULL, NULL, FALSE, REALTIME_PRIORITY_CLASS, NULL, tmpPath, &info, &pi))
cout << "FAIL !\n";
else cout << "SUCCESS !\n";

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector