Sagt mal, Jungs und Mädchen, wäre das nicht ein gutes Thema für eine kleine Delphi PRAXiS-
DLL? Diese
DLL könnte ihrerseits die hier gezeigten Funktionen kapseln, so dass man sie mit wenig Aufwand in eigene Programme einbinden kann.
Die Hauptfunktionen der
DLL könnten dabei statisch in die eigenen Programme gelinkt werden, so dass die Anwendung ohne die
DLL gar nicht startet. Im Gegensatz dazu sollten die benutzten
API-Funktionen in der
DLL natürlich dynamisch geladen werden, so dass bspw. ein Aufruf unter 9x/ME immer mit
true (oder was weiß ich) beantwortet wird.
Dazu vielleicht ein paar Typen und/oder Klassen bzw. Auflistungen, damit man nicht mit dem
API-Zeug hantieren muss. Klappt das Erlangen der gewünschten Rechte nicht, könnte man sicher das
API für sich arbeiten und die entsprechende Fehlermeldung direkt aus dem System ausgeben lassen (Stichwort:
FormatMessage).
Und wer schlicht und einfach nur den "Ausführen als"-Dialog braucht, für den könnte man ja eine Dialogressource (
nonVCL) integrieren, die dem Original nachempfunden ist, und mit der man das Konto auswählen und das Passwort eingeben kann. Selbstverständlich sollte sich der Anwender nicht mit der Nachrichtenschleife unter
nonVCL herumschlagen müssen. Für ihn sollte ein simpler Aufruf à la
Delphi-Quellcode:
if RunAsDialog(...) then
begin
end;
genügen.
@Codex: Hast du da nicht ein Zitat vergessen:
Zitat:
The SE_TCB_NAME privilege is not required for this function unless you are logging onto a Passport account.