Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: CodeSite Studio 5.3.2 funktioniert plötzlich nur mehr mit Administrator privilege

  Alt 22. Jul 2018, 22:05
Per Commandline Aufruf sollte das möglich sein, hier ein Batch Auszug:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
Hallo KodeZwerg,

vielen Dank für deinen genialen Gedanken!

Leider funktioniert es nicht so, wie ich es mir gewünscht habe.

Also, ich habe eine Batch-Datei "test.bat" mit diesem Inhalt erstellt:

Code:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" F:\delphi\_test\StartUnelevatedProgramFromElevatedProgram\Win32\Debug\StartUnelevatedProgramFromElevatedProgram.exe"
Wenn ich diese Batch-Datei doppelklicke, wird wie gewünscht mein Programm gestartet. So weit so gut.

Nun versuche ich mal, das Ganze von meinem elevated Programm aus zu starten:

Delphi-Quellcode:
procedure TForm3.btnRestartNotElevatedClick(Sender: TObject);
begin
  JclShell.ShellExecEx('F:\delphi\_test\StartUnelevatedProgramFromElevatedProgram\Win32\Debug\test.bat');
  Close;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  // wer MiTeC nicht hat, einfach einen anderen Code verwenden oder auskommentieren:
  if MiTeC_Routines.IsElevated then
    Self.Caption := 'Elevated'
  else
    Self.Caption := 'NOT Elevated';
end;
Ich starte also meine App mit höheren Rechten: KontextMenü im Windows-Explorer -> "Run as Administrator". Nach dem UAC prompt started dann die App elevated.

Dann klicke ich auf den Button: Das Programm startet die Batch-Datei, schließt sich selbst, und die App wird neu gestartet. Aber leider wieder elevated!

Im Anhang ist der Source-Code:

StartUnelevatedProgramFromElevatedProgram.zip
  Mit Zitat antworten Zitat