Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#3

AW: RunAs und Begrenzung auf eine einzelne Instanz

  Alt 15. Mär 2012, 18:16
Ich denk es geht um die NamedPipe? Dann bringt das Schließen des Mutex also nichts.
Klar bringt das was. Die Named Pipe wird nur unter bestimmten Umständen geöffnet (nicht schon beim Anzeigen der MainForm). Um ganz genau zu sein, ist die Named Pipe nur dann geöffnet, wenn ein weiteres Formular sichtbar ist. Die Funktion zum "Ausführen als" ist aber nur via MainForm zugänglich.

Zitat:
- Programm beenden und erst dann das andere Programm starten.
Äh, ja, und jetzt zeigst du mir noch, wie man von/mit einem beendeten Programm ein anderes startet .

Zitat:
- Anderes Programm starten, im per Paramter sagen es soll in paar Sekunden warten, und währenddessen das erste Programm beenden.
Ja, an eine Verzögerung hab ich auch schon gedacht. Aber so richtig gefallen will mir das nicht.

Zitat:
- Pipe und Mutex schließen und dann das andere Programm starten. (danach eventuell das erste Programm ganz schließen)
Das vorherige Schließen des Mutex bringt mir nichts. Ich erkläre das mal etwas genauer. Die Funktion ShellExecuteEx mit dem Verb "runas" bringt den Dialog "Ausführen als". Schließe ich das Mutex vor dem Aufruf von ShellExecuteEx (bzw. obiger Funktion RunAs), ist es weg und folglich sind weitere Instanzen möglich.

Schließe ich das Mutex nicht vorher: Angenommen, der Anwender bricht den "Ausführen als"-Dialog ab, gibt die Funktion RunAs False zurück. Darauf könnte ich reagieren, und das Mutex schließen. Parallel dazu läuft aber noch der neu gestartete Prozess. Welche Instanz wird nun schneller sein? Die eigene Instanz mit dem Schließen des Mutex oder die neu gestartete Instanz mit dem (vergeblich versuchten) Erzeugen eines Mutex?

MfG Dalai
  Mit Zitat antworten Zitat