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

Тема в разделе "Delphi", создана пользователем WinHack, 4 ноя 2017.

  1. WinHack
    При запуске программа запрашивает как она будет открыта ( От Администратора или от Юзера )

    Код помещаем в 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;