Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#19

AW: Adminrechte für eine Prozedur

  Alt 27. Okt 2015, 09:30
Damit habe ich mein Ziel erreicht. Es können alle notwendigen Einträge vorgenommen werden und ich stelle Sicher, durch das Deaktivieren der normalen Programmfunktion, dass keiner auf die Idee kommt das Programm immer "Als Administrator" auszuführen.
Und was machst du, wenn noch jemand unter XP als lokaler Admin arbeitet oder ab >= Vista die UAC deaktiviert? In diesem Falle wäre dein Programm unbenutzbar, da alle Programmfunktionen deaktiviert werden.

Machs doch sauber und nimm die "runas" Geschichte und gib die auszuführende Option als Parameter an dich selbst weiter. Grade wenn es nur um Optionen geht. Dort brauchst du nach De/Aktivierung ja kein wirkliches Feedback in deiner GUI anzeigen bzw. weißt ja im Erfolgsfall, wie der neue Status aussieht.

In die DPR packst du sowas in die Art:
Delphi-Quellcode:
begin
  if (ParamCount >= 1) then
  begin
    if (ParamStr(1) = '/toggle') then
    begin
      Beep(700, 1000);
      Exit;
    end;
  end;
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm3, Form3);
  Application.Run;
end.
Und zum Togglen der Option sowas:
Delphi-Quellcode:
var
  ExecInfo: TShellExecuteInfo;
begin
  FillChar(ExecInfo, SizeOf(ExecInfo), #0);
  ExecInfo.cbSize := SizeOf(ExecInfo);
  ExecInfo.lpVerb := 'runas';
  ExecInfo.lpFile := PChar(ParamStr(0));
  ExecInfo.lpParameters := '/toggle';
  if ShellExecuteEx(@ExecInfo) then
  try
    WaitForSingleObject(ExecInfo.hProcess, INFINITE);
  finally
    CloseHandle(ExecInfo.hProcess);
  end;
end;
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat