Matthias Hanft
2016-02-05 08:44:33 UTC
Hallo,
gibts irgendwo ein Delphi-Beispiel (notfalls auch VB, C etc.), wie ein
Programm seine Admin-Rechte los wird? Ich habe schon herausgefunden,
dass man dazu offenbar diese Funktion braucht
https://msdn.microsoft.com/en-us/library/aa375202%28VS.85%29.aspx
aber wie man die aufruft (woher hat man z.B. das "TokenHandle"?), ist
mir etwas schleierhaft... da wäre ein Codeschnipsel ganz hilfreich.
Hintergrund: Ich lasse den Anwender mein Delphi-Programm mit Install-
Shield installieren. Das hat natürlich Admin-Rechte, damit es sich
selbst ins Programmverzeichnis schreiben darf. Auf der letzten
InstallShield-Seite gibts ja dann das Ankreuzfeld "Programm
starten", damit mans gleich ausführen kann nach der Installation.
Und anscheinend hat das so gestartete Delphi-Programm dann immer
noch Admin-Rechte und darf auch weiterhin ins Programmverzeichnis
schreiben (und es sind wohl auch andere Netzwerklaufwerke aktiv
als die des "normalen" Benutzers, was zu Verwirrung führt, wenn
es im OpenDialog z.B. "X:\irgendwo\blabla" nicht gibt).
Daher würde ich beim Start das Programm gerne in den Zustand
versetzen, den es auch hätte, wenn es einfach ganz normal übers
Startmenü gestartet worden wäre. Geht das (mit der obigen
Funktion), und wenn ja, wie?
Danke & Gruß Matthias.
gibts irgendwo ein Delphi-Beispiel (notfalls auch VB, C etc.), wie ein
Programm seine Admin-Rechte los wird? Ich habe schon herausgefunden,
dass man dazu offenbar diese Funktion braucht
https://msdn.microsoft.com/en-us/library/aa375202%28VS.85%29.aspx
aber wie man die aufruft (woher hat man z.B. das "TokenHandle"?), ist
mir etwas schleierhaft... da wäre ein Codeschnipsel ganz hilfreich.
Hintergrund: Ich lasse den Anwender mein Delphi-Programm mit Install-
Shield installieren. Das hat natürlich Admin-Rechte, damit es sich
selbst ins Programmverzeichnis schreiben darf. Auf der letzten
InstallShield-Seite gibts ja dann das Ankreuzfeld "Programm
starten", damit mans gleich ausführen kann nach der Installation.
Und anscheinend hat das so gestartete Delphi-Programm dann immer
noch Admin-Rechte und darf auch weiterhin ins Programmverzeichnis
schreiben (und es sind wohl auch andere Netzwerklaufwerke aktiv
als die des "normalen" Benutzers, was zu Verwirrung führt, wenn
es im OpenDialog z.B. "X:\irgendwo\blabla" nicht gibt).
Daher würde ich beim Start das Programm gerne in den Zustand
versetzen, den es auch hätte, wenn es einfach ganz normal übers
Startmenü gestartet worden wäre. Geht das (mit der obigen
Funktion), und wenn ja, wie?
Danke & Gruß Matthias.