![]() |
[Win Vista/7] Adminrechte zur Laufzeit benötigt
Hi,
ich habe schon gesucht, aber nix so wirklich gefunden. Es geht um folgendes. Ich habe einen Texteditor, der ja normal keine Adminrechte benötigt. Man hat aber die Möglichkeit, im Programm zu wählen mit welchen Dateiendungen dieser verknüpft werden soll. Dazu benötige ich dann Adminrechte. Sowas habe ich schon mal bei einem Programm gesehn. Dort war dann das Shield Icon drauf und wenn man den Button drückt kommt die UAC Abfrage und man konnte seine Einstellung vornehmen. Jetzt wollte ich fragen, wie die das machen? Das mit dem Shield Icon weiss ich schon wie das geht. MfG |
Re: [Win Vista/7] Adminrechte zur Laufzeit benötigt
Dazu gebits hier schon genügend Beispiele und sogar ein Video von Daniel
![]() Das Beispiel darin hat das am besten weiter geholfen ![]() Meine Interpretation:
Delphi-Quellcode:
wobei ich RunAsAdmin(ParamStr(0),'/config','',True) verwende
function RunAsAdmin(ParentForm:TForm;Programm:String;Parameter:String='';Directory:String='';WaitForProgramm:Boolean=False):Boolean;
var ShellInfo : TShellExecuteInfo; ProcessResult : DWord; begin Result := False; if FileExists(Programm) then begin FillChar(ShellInfo,SizeOf(ShellInfo),0); ShellInfo.cbSize := SizeOf(ShellInfo); ShellInfo.Wnd := ParentForm.Handle; ShellInfo.fMask := SEE_MASK_FLAG_DDEWAIT OR SEE_MASK_FLAG_NO_UI OR SEE_MASK_NOCLOSEPROCESS; ShellInfo.lpVerb := 'runas'; ShellInfo.lpFile := PChar(Programm); if Parameter <> '' then ShellInfo.lpParameters := PChar(Parameter); if Directory = '' then Directory := ExtractFilePath(Programm); ShellInfo.lpDirectory := PChar(Directory); ShellInfo.nShow := SW_SHOWNORMAL; Result := ShellExecuteEx(@ShellInfo); if WaitForProgramm AND Result AND (ShellInfo.hProcess <> 0) then begin // Es soll gewartet werden UND Erfolgreich gestartet UND Handle bekommen try ParentForm.Enabled := False; while GetExitCodeProcess(ShellInfo.hProcess,ProcessResult) AND (ProcessResult = STILL_ACTIVE) do begin Application.ProcessMessages; Sleep(2); end; finally CloseHandle(ShellInfo.hProcess); ParentForm.Enabled := True; end; end; end; end; |
Re: [Win Vista/7] Adminrechte zur Laufzeit benötigt
Gibts da keine andere Möglichkeit?
Weil dann hab ich das Programm ja 2 mal offen! Hm... |
Re: [Win Vista/7] Adminrechte zur Laufzeit benötigt
Ist ja wieder seh hilfsbereit das Forum.
Also muss der Adminteil ne extra Anwendung sein, die dann aufgerufen wird? |
Re: [Win Vista/7] Adminrechte zur Laufzeit benötigt
Nein muss es nicht. Dazu gibt es in den DP-Delphi-Videos hier im Forum extra ein Video für Delphi und die UAC. Du brauchst halt noch nen COM-Server in deinem Programm, den du dann mit Adminrechten startest und dem dann sagst, was er zu tun hat. Das ist auch hier irgendwo im Forum zu finden.
Bernhard |
Re: [Win Vista/7] Adminrechte zur Laufzeit benötigt
Gut ich hab was über Google gefunden, weil bei dem Beitrag, den ich hier im Forum gefunden hab, die Links nicht mehr gingen.
Danke erstmal! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz