ich habe vor kurzem ein kleines Tool geschrieben, wofür ich jetzt aber ein vollwertiges Setup erstellen möchte. Das heißt, man soll bei der Installation auswählen können "Nur für diesen Benutzer installieren" oder "Für alle Benutzer installieren". Für letzteres bräuchte das Setup dann Administratorrecht und es soll eine entsprechende Windows-Meldung kommen "Möchten Sie zulassen, dass durch folgendes Programm [...] Änderungen an diesem Computer vorgenommen werden?". Es wäre wichtig, dass diese Meldung erst kommt, wenn man auf "Für alle Benutzer installieren" klickt. Das Programm müsste sich irgendwie mit Administratorrecht neustarten.
Folgender Code hat in verschiedensten Ausführungen nichts gebracht:
Code: Alles auswählen
var
StartInfo : TStartupInfo;
ProcInfo : TProcessInformation;
Token : Handle;
[...]
ZeroMemory(@StartInfo,SizeOf(StartInfo));
ZeroMemory(@ProcInfo,SizeOf(ProcInfo));
StartInfo.cb := SizeOf(StartInfo);
LogonUser('administrator',nil,nil,LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT,@Token);
CreateProcessAsUser(Token,nil,PChar(ParamStr(0) + ' -all'),nil,nil,false,NORMAL_PRIORITY_CLASS,nil,PChar(ExtractFilePath(ParamStr(0))),@StartInfo,@ProcInfo);
Application.Terminate;
Hat jemand eine bessere Idee?