Öffnen mit...



  • wie kann ich, wenn eine Datei wie eine .txt sofort mit meinem Program öffnen.

    Also ich drücke auf eine *.txt und mein Prog. wird geöffnet mit dem Inhalt der *.txt.



  • Zu GetCommandLine() hatte ich mal ein kommentiertes Beispiel gepostet, das in dieser Form zumindest in lokalen Verzeichnissen immer klappt. - War offenbar immer noch nicht ausgereift, die FAQ kennt es nicht. 🙂

    Kannst dich aber auch zu ParamStr() schlau machen. Viele schwören drauf... ich nicht. 😃



  • Hoi,

    ich denke eher, er meint dass txt Dateien immer mit seinem Programm geöffnet werden als mit notepad, sozusagen ne stadardanwendung.

    Klicke auf irgendeine txt-File (markieren), dann UMSCHALTTASTE drücken und rechtsklick drauf machen, dann "Öffnen mit" auswählen, dann dein Programm wählen und unten den Haken setzen "Diesen Dateityp immer mit diesem Programm öffnen" anklicken, OK und fertig.

    ps: war es das was du wollstest ?

    gruß ranger81



  • Hi,
    wenn du das auf fremden Rechnern per Instalation machen willst, musst du das in die Registry schreiben! Suche mal im Forum, da gibt's schon viele Beiträge zu!

    MFG

    Alexander Sulfrian



  • mosta:
    Inzwischen bist du doch nicht mehr ganz neu hier und solltest es eigentlich mitbekommen haben: bitte immer zuerst in die FAQ sehen!



  • das was OmegaX geschrieben hat meinte ich, weil wenn ich das mit meinem Programm jetzt versuche kommt immer "... keine zulässige Win32 Anwendung".
    Ich werd mal suchen.
    thx mosta



  • @mosta, dann sei nicht enttäuscht, wenn es trotz richtigem Code im FormShow nicht klappt. Hab den Code jetzt mal auskommentiert, dann neu kompiliert. Die App öffnet sich, aber der geklickte File wird einfach nicht geladen. Keine Meldung oder sonstwas.

    Deine Fehlermeldung weist auf einen Fehler in der Anwendung hin - bzw. auf eine Konsolenanwendung. Hast du ggf. was in der Projekt.cpp geändert?



  • Von welchem Code redet ihr? Wenn sich das auf einen anderen Thread bezieht dann bitte die Diskussion dort fortführen.



  • Mit "richtigem" Code meine ich "irgendeinen" Code, der geeignet wäre, eine geklickte Datei zu laden. Bei @mostas Fehlermeldung würde ich nicht erwarten, daß etwas anderes gelingt als eben diese Fehlermeldung zu erhalten. Ich denke, mit der Anwendung stimmt irgendwas nicht.



  • Ich glaub wir reden hier aneinander vorbei. Ich will die Funktion in mein Programm intigrieren, dass wenn man einen .txt File mit der Öffnen mit... Funktion/Menüpunkt direkt Laden kann, so wie bei den meisten TextEditoren.

    Nicht Systemweit Dateiformate mit meinem Prog öffnen(wie bei Word). Das Beispiel von B&M ist schon toll, nur weiß ich nicht welchen Teil ich davon nur nehmen muss kann jmd. das nier hinschreiben/posten.



  • Einfach im OnClick-Event des Menüs oder Buttons LoadFromFile ausführen!? Das ist doch nicht wirklich dein Problem, oder? Wenn ja, dann solltest du dir dringend mal das Texteditor-Tutorial in der Hilfe ansehen!



  • nein, ich meine wenn jmd. im OS auf eine .txt drückt und dort auf "Öffnen mit..." Klickt und dann die .txt öffnen und in meinem Programm dastellen so wie bei Word oder beim Editor.



  • @Mosta

    Du musst folgendes machen:

    1. Tip von ranger81@work oder <Alexander Sulfrian> befolgen
    2. In deinem Programm beim Start die Commandine- Parameter auswerten:--
    -- Paramstr(1) ist der Dateiname der angeklickten Datei! (Dazu gab's viele
    -- Beitraege!)

    Der Tip von ranger81@work oder <Alexander Sulfrian> bewirkt im OS, dass der Dateiname einer doppeltgeklickten Datei als Parameter an Dein Programm beim Start uebergeben wird!!! Den liest Du in Deinem Prog mit Paramstr(1) aus.

    PS: Wenn Du mehrere Daeien im OS (Explorer) auf das Symbol Deines Programmes fallen laesst, werden die Namen aller Dateien uebergeben in ParamStr(1), ParamStr(2) ...
    Die Summe aller Parameterlaengen darf aber nicht mehr als 128 (oder 256???) betragen. D.h., das klappt nur mit begrenzter Anzahl.



  • Also ich glaube mosta will hier einen Eintrag erzeugen:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithList

    Gruß WoWe



  • Steht trotzdem alles in der FAQ!



  • also ich hab mitlerweile es hinbekommen, wenn ich eine Textdatei auf die .exe "fallen" lasse sie in meinem Prog. geöffnet wird das soll aber auch passieren wenn man auf "Öffnen mit..." (im auswahl menu mein Prog wählt) das dann die Textdatei in meinem Programm in der RichEdit erscheint.



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

    Im Explorer?

    [ Dieser Beitrag wurde am 17.04.2003 um 01:30 Uhr von WebFritzi editiert. ]



  • 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.


Anmelden zum Antworten