Zitat von
MCXSC:
Zitat von
mirage228:
Nachdem ich mir das ganze nochmals angesehen habe: Nein, leider nicht wirklich.
Hier müsste man ja - sofern ich den Ansatz richtig verstehe - nochmals mittels Adminrechte eine
COM registrieren... Dann kann ich direkt das ganze Programm so mit Adminrechten starten lassen.
Nur gibt es manche "One-EXE-Programme", die anfangs keine Abfrage haben (und dementsprechend auch keine
COM-Datei registrieren) und trotzdem nur für bestimmte Funktionen explizit Adminrechte anfordern. Bringt Vista da wirklich keine eigene Abfrage mit?
So, wie ich es sehe, hast du den Artikel nicht verstanden. Er beschreibt nämlich zwei mögliche Ansätze, um Elevation zu nutzen. Der erste Ansatz ist der ShellExecute Ansatz mit dem runas-Verb, welches auf die eigene Exe-Datei angewendet wird (du hast sie "One-EXE-Programme" genannt). Der zweite Ansatz nutzt dann erst
COM, um mit seiner Hilfe spezielle Methoden mit Adminrechten auszuführen.
Der erste Ansatz hat den Vorteil, dass es Addhoc geht, also keine Installation notwendig ist. Der Nachteil besteht jedoch darin, dass die Kommunikation auwändig ist. Wurde alle richtig ausgeführt? Was ist mit den Resultaten? Da wirst du nicht um eine Interprozesskommunikation herumkommen, wenn du dich nicht auf den Prozessrückgabewert beschränken willst.
Der zweite Ansatz, wie du schon weißt, hat den Nachteil, dass man ein
COM-Objekt bei Windows registrieren muss. Die Windowsinstaller (
MSI) besitzen jedoch schon einen Dienst, der es ermöglicht, dass erst bei einer Notwendigkeit, die
UAC aufpoppt (z.b. vor dem Dateikopieren). Der Vorteil im zweiten Ansatz besteht darin, dass man eine ganz normale Methode aufruft und alle Daten, die als Parameter übergeben oder von der Methode zurückgeliefert werden, von
COM (mit Einschränkungen) verwaltet werden.