Thema: Delphi Benutzerrechte

Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Benutzerrechte

  Alt 16. Feb 2023, 08:17
Entschuldige, ich hab Dein Problen glaube ich etwas falsch wahrgenommen.

Registry-Rechte aufweichen im Installer ist irgendwie sehr unschön.

Ging es nur darum, das Icon zu setzen, während das Programm non-elevated läuft?

ShellExecute(Application.MainForm.Handle, 'runas', PChar(ParamStr(0)), PChar(ADrive), nil, SW_HIDE);
Delphi-Quellcode:
program blub;
...
begin
   if FindCmdLineSwitch('seticon') then begin
      // set icon for ParamStr(2) in registry
      Exit;
   end;
   Application.Initialize ...
Besser als sich selbst mit Parametern aufzurufen wäre natürlich eine Mini-Konsolen-Exe ohne alles, nur mit dieser Funktion, um die Elevation so klein wie möglich zu halten.

Das wäre auf jeden Fall "korrekteres" Vorgehen, denn:

* Programme sollte non-elevated laufen können (siehe auch MS-Vorgaben für Compatible with Windows &c)
* Elevaten nur für einzelne Aktionen ist immer sicherer als Programme ganz elevated laufen zu lassen
* Programme sollten keine Rechte aufweichen wo nicht unbedingt nötig (siehe AV-Heuristiken)

Ja, dann fragt das Programm jedesmal nach Admin-Rechten, wenn eine Verknüpfung erstellt wird. Würde es, wenn das Programm selber elevated läuft, ja auch, und entspricht dem, was passiert.
  Mit Zitat antworten Zitat