Запуск программы с запросом От Администратора или от Юзера Delphi 7

WinHack

Администратор
23 Фев 2015
2,664
1,913
bsfo.ru
При запуске программа запрашивает как она будет открыта ( От Администратора или от Юзера )

Код помещаем в FormCreate

Код:
if not IsUserAnAdmin() then
    begin
      if MessageBox(Handle, 'Запуститься от админа?', 'Привилегии', mb_YesNo) = 6 then
        begin
          RunAsAdministrator(ParamStr(0));
          halt;
        end
      else
        label1.Caption := 'User';
    end
  else
    Label1.Caption := 'Admin';
Код:
// процедура запуска с правами админа
procedure RunAsAdministrator(const source: string);
var
  shExecInfo: PSHELLEXECUTEINFOW;
begin
  New(shExecInfo);
  shExecInfo^.cbSize := sizeof(SHELLEXECUTEINFO);
  shExecInfo^.fMask := 0;
  shExecInfo^.Wnd := 0;
  shExecInfo^.lpVerb := 'runas';
  shExecInfo^.lpFile := PWideChar(ExtractFileName(source));
  shExecInfo^.lpParameters := '';
  shExecInfo^.lpDirectory := PWideChar(ExtractFilePath(source));
  shExecInfo^.nShow := SW_SHOWNORMAL;
  shExecInfo^.hInstApp := 0;
  ShellExecuteex(shExecInfo);
  Dispose(shExecInfo);
  shExecInfo := nil;
end;