Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.430 Beiträge
 
Delphi 7 Professional
 
#16

AW: Prüfen ob Programm mit "runas" gestartet worden ist.

  Alt 20. Nov 2020, 11:22
Trotzdem ist wichtig auch zu beachten, was ich oben zur Lösung mit einem Parameter geschrieben habe:
Du kannst natürlich einen speziellen Parameter übergeben und auf den prüfen (ParamStr). Aber das heißt noch lange nicht, dass die Rechte, die du brauchst, vorhanden sind. Auch runas ist dafür keine Garantie!
Das gilt natürlich für die anderen genannten Lösungen genauso (nur dass Messages oder temporäre Dateien unnötiger Mehraufwand sind, weil sie keinen Vorteil gegenüber einem Parameter haben).
Die Methode hat aber den Charme, dass man über den Parameter gesagt bekommt: Ich habe Dich mit RunAs aufgerüfen, Du müsstest jetzt Adminrechte haben.
Und das aufgerufene Programm kann dann prüfen, ob es mit RunAs aufgerufen wurde und die entsprechenden Rechte hat.
Delphi-Quellcode:
function IsStartedWithRunas():Boolean;
begin
  Result := ParamStr(1) = 'runas';
end;
Liefert diese Funktion true und man hat trotzdem keine Adminrechte, scheint was mit dem Aufruf nicht zu funktionieren. Für eine Protokollierung sollte das ausreichen und darum scheint es hier ja zu gehen.

'nen Parameter bekommt man auf der Kommandozeile mit und hat ihn garantiert in ParamStr. Bei 'ner Message kann man sich dusselg anstellen und sie nicht mitbekommen
  Mit Zitat antworten Zitat