Как убрать повторную работу программы после нажатия "да" при запросе администратора

Рейтинг: 2Ответов: 0Опубликовано: 13.08.2023

Проблема такая: После запуска программа запрашивает права администора. Если нажать "Нет", то просто закроется Если нажать "Да", то программа становится будто батником, консоли просто открываются и закрываются постоянно и не дают ничего сделать

Как исправить?

Вот код:

#include <iostream>
#include <windows.h>
#include <shellapi.h>

int main()
{
    SHELLEXECUTEINFO info = { 0 };
    info.cbSize = sizeof(info);
    info.lpVerb = TEXT("runas");
    info.lpFile = TEXT("ConsoleApplication1.exe");
    info.nShow = SW_NORMAL;

    if (ShellExecuteEx(&info))
    {
        std::cout << "Программа успешно запущена с правами администратора." << std::endl;
    }

    else
    {
        DWORD error = GetLastError();
        if (error == ERROR_CANCELLED)
        {
            std::cout << "Пользователь отменил запрос на получение прав администратора." << std::endl;
        }
        else
        {
            std::cout << "Не удалось получить права администратора. Ошибка: " << error << std::endl;
        }
    }

    return 0;
}

Ответы

Ответов пока нет.