Entwickler-Ecke

Windows API - Programm "Ausführen als..."


Crowbar - Do 11.11.04 11:34
Titel: Programm "Ausführen als..."
Hallo,
unter WinXP ist es möglich, Programme, unter einen anderen Benutzernamen (siehe "Rechtsklick" auf ein Programm und dann "Ausführen als..."), zu starten.

Nun folgendes:
Auf meinen Computer ist ein Benutzerkonto mit Benutzerrechte sowie ein Benutzerkonto mit Adminrechten angelegt.
Der User mit Benutzerrechte startet mein Programm.
Da mein Programm eine *.ocx mit regsvr32 registrieren muss, soll das Programm regsvr32 mit meinen Benutzerdaten ausgeführt werden (s. "Ausführen als...").

Ist dies irgendwie in Delphi möglich?

Cu
Crowbar


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Do 11.11.2004 um 16:55


Delete - Do 11.11.04 12:28

Der einfachste Weg, der aber auch nur unter XP klappt, dürfte Suche in: Delphi-Library "SHELLEXECUTE" mit dem Verb runas sein. AFAIR erscheint dann die Box, die du vom Explorer her kennst.


Motzi - Do 11.11.04 12:44

Siehe auch Suche im MSDN CREATEPROCESSASUSER und Suche im MSDN CREATEPROCESSWITHLOGONW...


Crowbar - Do 11.11.04 13:38

Hi,
Danke für den Tip "runas", der soweit funktioniert.
Nur gibt es dabei noch einen kleinen "Schönheitsfehler". Ich kann wahrscheinlich mit "runas" nicht das entsprechende Passwort vorgeben, d.h. es wird der Befehl ausgeführt, aber dann erscheint ein Dialogbox zur Passworteingabe.

Quelltext
1:
runas /user: Test "regsvr32 C:\Test\test.ocx"                    

Leider gibt es keinen Parameter für die "Passwortübergabe" oder?

Crowbar


Delete - Do 11.11.04 14:56

Den Parameter für das Passwort darf es nicht geben. Dann könnte ja jeder kommen und sein Programm unter Admin-Rechten ausführen (Zu mindest unter XP Home, wo der Admin standardmäßig kein PW hat, würde dann ein Leersting reichen und das Ding würde als Admin laufen.). Das Registrieren ist eben ein Installationsvorgang, der eben nur vom Administrator ausgeführt werden soll und darf.


BenBE - Do 11.11.04 22:09

Das mit der Passwortübergabe kannst du aber mit Suche in: Delphi-Forum, Delphi-Library CREATEPROCESSASUSER erreichen.