Datei &Open in laufender instanz



  • Hi leutz,

    Wenn eine Dateierweiterung registriert ist kann man durch doppelklick (o.ä)
    das dazu registrierte programm starten und es wird per parameter lpCmdLine der Pfad der zu Öffnenden Datei übergeben.

    Nun ist es so, dass ich gerne wie bei Visual Studio, excel o.ä. die schon geöffnete instanz verwenden will um die datei zu öffnen.

    Wie kann man das realisieren oder welche mechanismen sind dafür vorgesehen?

    greetz



  • Grrr! Kann man das bitte auch verständlicher formulieren? 😕 Du rufst ein Programm (exe) auf und möchtest jetzt gleich dazu die Instanz einer woanders schon geöffneten Datei (z.B. txt) haben oder was?



  • Jo bernie.

    Ich wiederhole:

    Mit doppelklick auf eine datei z.b eine *.cod im Explorer wird das prog Visual studio geöffnet !!!!

    Mit einem Weiteren doppelklick auf eine *.cpp oder *.cod *.asm oder *.h file wird
    KEINE NEUE INSTANZ von Visual Studio geöffnet sondern nur ein neuer TAB in der
    schon GEÖFFNETEN INSTANZ!

    Hast Du das verstanden?

    Wenn nicht werde ich Dir das auch gerne aufmalen 😛 😉
    (entschuldige....)



  • Naja du musst eben beim Programmstart checken ob schon eine Instanz läuft (das löst man üblicherweise über ein named Mutex) und dann an die laufende Instanz irgendwie die Nachricht schicken dass die Datei geöffnet werden soll (Stichwort Interprozesskommunikation, evtl. bietet sich das hier an).



  • Dieser Mechanismus nennt sich "Single Instance" einer Applikation.

    Beispiele hierfür gibts jede Menge im Netz (Google oder hier im Forum)

    D.h. mit einem Mutex wird festgestellt, ob die gleiche Applikation bereits gestartet ist.
    Wenn ja, wird per IPC eine Meldung an diese bereits gestartete App geschickt (nämlich die Kommandozeilenparameter), und daraufhin wird sich selbst beendet.

    HTH,
    Martin



  • Ich bin hartnäckig wegen des Verständnisses. Es gibt also genau eine Datei oder auch mehrere (.xxx), auf die von mehreren Prozessen (oder Instanzen einer exe) beim Aufruf an unterschiedlichen Stellen zugegriffen werden soll. Brauchst du nicht aufmalen, sondern nur klar in Worte fassen! Meine Borland-IDE macht so etwas. Wie hat mich bisher nicht interessiert.



  • Shit,

    habe ich es mir doch gedacht,..

    thx leute



  • @Bernie

    Meine Borland-IDE macht so etwas. Wie hat mich bisher nicht interessiert.

    Ohje 🙄


  • Mod

    Das geschieht über die MDI Schnittselle und dazu wird ein DDE Befehl für den Open versendet.

    BTW: Wenn Du mit dem Wizard eine MFC MDI Anwednung erzuegst kannst Du Dir das genau ansehen, was unter der Extension/Dateityp in der Registry einegtragen wird.
    Auch die DDE Schnittstelle kann man in CFrameWnd der MFC wunderbar ansehen und zur Notkopieren 😉

    Alles weitere findest Du wie immer in der MSDN.



  • Hi schrieb:

    @Bernie

    Meine Borland-IDE macht so etwas. Wie hat mich bisher nicht interessiert.

    Ohje 🙄

    WOW, was für ein hilfreicher Dödelkommentar! :p Kann der Fragesteller sicher viel mit anfangen! 😃 Ich selbst will, muss und kann nicht alles wissen. Dr. Faust hat dafür seine Seele verkauft. Aber mal im Ernst: "Wer interessiert sich für Dinge, die er zwar gebraucht, aber selbst nicht machen und verstehen muss?"

    @Unreg Hi: schreib hier im Forum mal etwas ordentliches rein! 😡



  • Martin,

    du hast es einfach drauf 😉

    Daaaanke, ich gucke es mir gerade an ,... thx 😃



  • @berniebutt
    meingott bist du ne zicke.


Anmelden zum Antworten