Öffnen mit...



  • Hi,

    der ganze Thread ist schon verwirrend! Doch ich glaube das Problem wurde eigentlich schon richtig gelöst!

    @mosta

    Wie schon von DerAltenburger beschrieben funktioniert dieses per Kommandozeilen. Wenn Du jetzt im Explorer auf die Text Datei (hilfe.txt oder wie auch immer sie heißt) mit der Rechten Maustaste klickst und dort das Popupmenü kommt und Du "Öffnen mit... " auswählst und dann Dein Programm (mostaEditor.exe) macht das OS in DOS sprache eigentlich nix anderes als hilfe.txt an mostaEditor.exe zu übergeben. Dies wurde bei DOS so gehändelt: "mostaEditor.exe hilfe.txt"

    Dies wird aber auch noch heute in Windows so gemacht. Daher mußt Du hierfür ParamStr und ParamCount benutzen.

    ParamCount = Anzahl der insgesamten Parameter (Du kannst ja auch mehrere makieren und dann "Öffnen mit... " wählen)
    ParamStr = Ist der Paramter für sich (Also in dem Beispiel jetzt als hilfe.txt gesehen)

    Damit sollte eigentlich Dein Problem zu lösen sein. Genaueres zu ParamCount und ParamStr findest in der Online Hilfe.



  • Original erstellt von mosta:
    also ich hab mitlerweile es hinbekommen, wenn ich eine Textdatei auf die .exe "fallen" lasse ...

    Hi,
    meinst du damit, dass wenn du die *.txt auf deine *.exe ziehst, sie sich dann öffnet!
    Wenn ja, dann hast dus ja schon fast geschafft! Dann musst du nur noch einen Eintrag in der Reg erzeugen!

    MFG

    Alexander Sulfrian



  • @Alexander Sulfrian wieso brauch ich den Registry Eintrag(Der Sinn fehlt um weiter logisch zu denken).



  • Damit bei einem Doppelklick auf eine Textdatei deren Dateiname und -pfad an dein Programm übergeben wird. Dieser Name erscheint dann in den Parameterstrings und kann von dir dazu benutzt werden, die Datei in dein Programm zu laden.



  • und wie sieht das in Code aus



  • Willst du uns ver*****en?



  • ... oder @mosta fühlt sich vom vielen Text erschlagen - es kommt mir fast so vor.

    @mosta, wenn du einen File im Explorer wirksam auf deine .exe ziehen kannst, hast du bereits alles, was du brauchst, implementiert.

    Markiere nun einen File-Eintrag, ruf das Kontextmenü (Rechtsklick darauf) auf.

    Zeile: "öffnen mit..." wählen - also draufklicken.

    Im erscheinenden Dialog ganz unten auf "andere" klicken.

    Im erscheinenden Dialog dein App-Verzeichnis suchen. Darin die app.exe wählen.

    Alles bestätigen, ein letztes "OK", und... kein Dialog mehr, dafür öffnet deine App und öffnet auch den File - genau so, wie du es wolltest.

    -Es gelang: Poste ruhig dein "Hosianna", alle freuen sich mit dir. 😉

    -Es mißlang: Poste den Inhalt der Message + deinen Code.

    Vorher:

    Suchfunction --> GetCommandLine() --> fertigen Code ins FormShow übernehmen, danach deine Öffnen-Routine aufrufen...

    oder Suchfunction --> ParamStr() --> fertigen Code ins FormShow übernehmen/je nach Thread auch etwas ergänzen, deine Öffnen-Routine aufrufen...

    ...also als Abschluß einfach ein open(Sender); oder welche Function du auch immer benutzt (benötigt keinen!!! OpenDialog mehr).

    HTH :p



  • Hallo zusammen,

    ich glaube was Alexander Sulfrian meint, ist das sich das Programm von mosta selbst in die Registry reinschreibt und somit das Autostarten von Notpad oder UltraEdit verhindert. Doch dazu müsste sich mosta ja noch mit der Registry beschäftigen. Ich denke das würde hier zu weit führen.



  • Der Regystrieintrag kann sich auch selbst regeln, indem man "...immer mit diesem Programm öffnen" aktiviert. Das wär also das geringste Problem.

    Im Fall Notepad hat es sich bestens bewährt, die eigene App zu testen, dann das Original umbenennen und den eigenen an die Stelle setzen. Dann ist automatisch alles geregelt, auch ua. das Queltextöffnen im IE.

    -Deswegen steh ich auch so auf GetCommandLine(). 😉 Das nutzt '?' im ParamString nicht als Parametertrenner. ParamStr() hat aber große vorteile, wenn man via MultiSelect mehrere Files auf einmal öffnen will. -- Man hat also die Quaal der Waal *grins*.



  • So jetzt ein anderes Problem spät erkannt aber lieber früh als nie. So reden wir nicht drum hier.

    Es soll ja ein HTML, PHP Editor werden, nur wenn ich eine RichEdit benutze setzt er mir noch die Fontinformationen voran und im Browser wird es nicht richtig dagestellt und wenn ich ein Memo benutze kann ich die RichEdit Messages nicht mehr benutzen oder geht das doch?(kein Plan)

    also kennt ihr mein "Dilema" was kann ich da machen. Ich will ja die anderen Funktion die schon implementiert habe weiter nutzen;-).

    [ Dieser Beitrag wurde am 18.04.2003 um 00:57 Uhr von mosta editiert. ]



  • Schau dir mal TRichEdit::PlainText an.



  • danke


Anmelden zum Antworten