Forum: Programmieren allgemein
Delphi
by Dalai,
17. Mär 2012
Wie meinst du das? Ein ShellExecuteEx mit dem Verb 'runasuser' funktioniert doch :gruebel:, wie jaenicke dankenswerterweise herausgefunden hat. Und ganz ehrlich: mehr Aufwand will ich auch gar nicht treiben; alles, was in Richtung eigener Überprüfung der Credentials geht, ist völliger Overkill - jedenfalls für diesen Zweck.
Juckt mich überhaupt nicht. Wird es bei Win2k/XP auch nicht. Und wenn...
Forum: Programmieren allgemein
Delphi
by Dalai,
16. Mär 2012
Mmh, ich habe jetzt drei funktionierende Methoden ausmachen können, weiß aber nicht so recht, welche davon man benutzen sollte.
Fenster finden und Nachricht zum Schließen senden (falls der Parameter 'runas' übergeben wurde)
hWindow:= FindWindow('TMainForm', PChar(sApplicationTitle));
if hWindow > 0 then
SendMessage(hWindow, WM_CLOSE, 0, 0);
Bestimmte Nachricht registrieren und darauf...
Forum: Programmieren allgemein
Delphi
by Dalai,
16. Mär 2012
Ich werd mir das mal anschauen. Das Nervige an der Sache ist, dass ich mal wieder mehr Aufwand treiben muss, weil MS zu doof/faul/whatever ist, um auf allen Systemen ein konsistentes Verhalten hinzubekommen. Schließlich funktioniert es bei Win2k/XP problemlos, und ShellExecuteEx wartet auch dann, wenn fMask gar nicht gesetzt (und damit 0) ist.
MfG Dalai
Forum: Programmieren allgemein
Delphi
by Dalai,
16. Mär 2012
Irgendwie reden wir aneinander vorbei. Ich mache es mal anhand von etwas Code - hier von einem Testprogramm - klar:type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
function RunAs(const verb: string): Boolean;
public
Forum: Programmieren allgemein
Delphi
by Dalai,
16. Mär 2012
Nein, so weit kommt es gar nicht. Nach Ende der Funktion ShellExecuteEx rufe ich die Funktion ShowMessage auf, um mir etwas anzeigen zu lassen. Die Meldung kommt schon, während der "Ausführen als"-Dialog noch lädt (ist n bissel langsamer wegen virtueller Maschine).
Genau das ist das Ziel. Das eigene Programm mit anderem Nutzer starten. Es geht nicht um irgendein anderes Programm.
Ich werd...
Forum: Programmieren allgemein
Delphi
by Dalai,
15. Mär 2012
WTF? Darauf wäre ich nie gekommen! Liegt wohl daran, dass die Dokumentation von MS so überaus vollständig ist :roll: ... In der Doku Datenstruktur SHELLEXECUTEINFO ist selbst das seit Win2k funktionierende Verb runas nicht zu finden :roll:.
In der Tat funktioniert das. Danke! Es hat aber einen dicken Nebeneffekt, der es für den Anwendungszweck unbrauchbar macht: die Funktion ShellExecuteEx...