Nein gibt es nicht. Warum wird eigentlich immer nach Alterantiven gefragt, wenn man was nicht hinbekommt, weil man was falsch macht?
Auch auf die Gefahr hin, dass ich mich wiederhole:
http://www.luckie-online.de/Develope.../Importe/Nico/ -> oneinst.zip
Zur Erklärung: Woher soll Windows wissen, dass es nur eine Instanz deines Programmes öffnen soll? Und das es keine Option dafür gibt, liegt schon alleine darin begründet, dass es in deiner Verantwortung liegt, wie dein Programm mit den Parametern umgeht. Windows kann ja schlecht was von sich in deinem Programm implementieren und zu dem noch hellsehen, was du eigentlich willst. Ergo sieht die Vorgehensweise so aus:
Wenn schon eine Instanz gestartet wurde, Paramteer an erste Instanz weiterleiten und zweite Instanz beenden. Weiterreichen kann man die Parameter mit WM_COPYDATA, dabei muss die zweite Instanz die entsprechende Nachricht senden mit den Paramtern und die erste muss darauf reagieren und die übergebenen Parameter verarbeiten. Feststellen, ob schon eine Instanz läuft, kann man mit einem
Mutex oder Semaphore.
Abnehmen tut dir dies alles die
Unit von Nico.
Ich hoffe, jetzt ist das endlich mal geklärt und dieser unsägliche Thread findet mal ein Ende.