Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
17th
Мар
Запуск с правами администратора и получение кода завершения программы
Posted by maloy under Win Api
Человек_Борща
Доброго времени суток!
Есть некое самописное ПО, требующее прав. администратора, по завершению работы возвращает специфический код ответа.
В ПО уже включен манифест адм. прав.
Пробовал ShellExecuteEx:
var
ExtApp: string;
SEI: TShellExecuteInfo;
aCode: DWORD;
begin
ExtApp := '';
ZeroMemory(@SEI, SizeOf(TShellExecuteInfo));
SEI.cbSize := SizeOf(TShellExecuteInfo);
SEI.lpFile := PChar(ExtApp);
SEI.lpDirectory := PChar(ExtractFilePath(PluginsWeb));
SEI.lpParameters := PChar('"' + '"');
SEI.lpVerb := PChar('runas');
SEI.fMask := SEE_MASK_DEFAULT;
SEI.nShow := SW_HIDE;
Result := ShellExecuteEx(@SEI);
if Result then
begin
aCode := 777;
WaitForSingleObject(SEI.hProcess, INFINITE);
GetExitCodeProcess(SEI.hProcess, aCode);
end;
Result := (aCode = NO_ERROR);
end;
Запускается с адм. правами но код возврата всегда > 0, хотя это не так. Судя по результату, ПО записало куда надо значение, и вернуло код возврата = 0.
В качестве lpVerb был и open, итог тот же.
С CreateProcess ситуация сложнее:
ПО вообще не просит адм. прав при запуске(визуально никаких подтверждений), и как следствие не делает то, на что запрограммировано, но возвращает код возврата оО.
Не использовать адм. привилегии нельзя. Тупик.
Человек_Борща
Проблема решена. SEE_MASK_NOCLOSEPROCESS
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)