Programmaufruf mit Admin rechten

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
hbr
Beiträge: 209
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Programmaufruf mit Admin rechten

Beitrag von hbr »

Hallo, so wie in der Überschrift erwähnt möchte ich ein Externes Programm Mittels Button aufrufen.

Dieses Programm(Updateprogramm) benötigt Admin Rechte.
Meine derzeitiger Aufruf ist wie folgt.

Code: Alles auswählen

Begin
  FillChar(StartupInfo, SizeOf(StartupInfo), #0);
  FillChar(ProcessInfo, SizeOf(ProcessInfo), #0);
  StartupInfo.cb := SizeOf(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW or NORMAL_PRIORITY_CLASS;  //funktioniert nicht.   STARTF_FORCEONFEEDBACK                     
  StartupInfo.wShowWindow := SW_SHOW;
  result := CreateProcess(nil, @Filename[1], nil, nil, false, CREATE_NEW_CONSOLE or HIGH_PRIORITY_CLASS , nil, nil,  StartupInfo, ProcessInfo);
  _hWnd := ProcessInfo.hProcess;
end;  
Kann mir hier jemand helfen, wie ich es Realisiert bekomme, dass eine Dialog erscheint und das Exe Programm dann als Admin startet. Das Update Programm startet nach dem es geschlossen wurde das Hauptprogramm wider per Mutex.
Gruß

gladio
Beiträge: 113
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-32/64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 32/64Bit
Wohnort: Rügen

Re: Programmaufruf mit Admin rechten

Beitrag von gladio »

in Projekteinstellungen - Anwendung - Ausführungsebe kann man das einstellen.
Funktioniert das nicht für deine Zwecke?

sstvmaster
Beiträge: 320
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: OS: Windows 10 | Lazarus: 2.0.8 + Fixes + Trunk 32bit
CPU-Target: 32Bit
Wohnort: Dresden

Re: Programmaufruf mit Admin rechten

Beitrag von sstvmaster »

Oder so:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'runas', 'notepad.exe', nil, nil, SW_SHOWNORMAL);
end;
Dateianhänge
RunAsAdmin_Updater.zip
(125.85 KiB) 7-mal heruntergeladen
LG Maik

hbr
Beiträge: 209
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: Programmaufruf mit Admin rechten

Beitrag von hbr »

Nein, das Funktioniert leider nicht,
es geht nur zum Teil.
Das Programm läuft mit OleVariant, Daten werden in die Outlool.pst Datei geschrieben.
Wenn das Programm im Administrationsmodus gestartet wird, schreibt es Daten in die *.pst Datei und
blockiert dann Outlook.
Outlook kann dann nicht gestartet werden.
Deswegen muss das Programm normal ausgeführt werden und wenn der "Update Butten“ gedrückt wird,
soll das Updateprogramm im Adminmodus starten.
Das was bisher geht, ist, wenn man das Programm nicht in einem Programmordner installiert.
z.B. in einem normalbeschreibbaren Ordner(Eigene Dateien) oder zweite Partition mit normalen Zugriffsrechten,
aber das ist ja eine untypische Installation.

hbr
Beiträge: 209
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64,ARM(RPi)

Re: Programmaufruf mit Admin rechten

Beitrag von hbr »

@sstvmaster

Hallo, Vielen DANKE mit "ShellExecute" hat es funktioniert.

Habe schon ziemlich viel probiert.
Mit "AProcess" ging es auch nicht.

Gruß

Antworten