"Öffnen mit ..."-Dateiendung festlegen



  • Hallo zusammen,

    ich bins mal wieder.
    Hat jemand von euch eine Ahnung, wie ich selbergeschriebene Programmdateien (zB. datei.qwe) beim Doppelclick automatisch mit meinem Programm öffnen lassen kann - wie das mit Word etc. auch geht.

    Steht so was in der Registry?

    Gruß
    Franzi

    [ Dieser Beitrag wurde am 04.10.2002 um 17:04 Uhr von Jansen editiert. ]



  • hi franziska,
    also wenn dir es reicht es manuell zu tun:

    Geh in die <Ordneroptionen> von deinem Explorer (unter <Ansicht> ), geh auf <Dateitypen> und wähl in der Liste dein Dateiformat aus, falls nicht vorhanden -

    erzeuge es mit Neuer Typ, Gib oben bei Bezeichnung den Namen an, der dieses Format bezeichnet (z.B. "Datei für meine Anwendung")
    und gib die DateiErweiterung dazu an (z.B. *.file).

    Nun egal ob der typ existiert hat,
    bleib in diesem Dialog und
    geh auf <Neu...> bei <Vorgänge:> gib oben ein, wie du diesen Vorgang bezeichnest (z.B. "Öffnen") und gib den Pfad von deinem Programm unter <Anwendung für dieses Programm> an. Nun nur noch einmal OK angeklickt. Als letzten Schritt musst du dann in der Liste deinen Vorgang markieren und auf <Als Standart> klicken, dass war's.

    hope I could help !

    body



  • Sorry,

    Danke für Deine Antwort, aber manuell ist nicht so der Hit.
    Benötige dies im Rahmen eines Projekt.
    Trotzdem Danke.

    Hat sonst jemand eine Ahnung, wo so was stehen könnte?

    Gruß
    Franzi



  • Huhu Franziska, such mal im Forum. Gab vor kurzem wem, der das ebenfalls gefragt hat...
    http://www.c-plusplus.net/ubb/ubb/Forum2/HTML/001048.html



  • @maverick:
    ich glaube, sie meint:
    Welche Registry Eintäge müssen eingetragen werden, damit ein Dateiformat standartmäßig mit ihrer Anwendung geöffnet wird ?
    Nun, dies ist schon mal gefragt worden @franziska. Ich hab letzens versucht, diesen beitrag zu finden.
    VERGEBLICH !

    Habe aber recherchiert:
    Unter HKEY_CLASS_ROOT musst du erst einen Schlüssel, der den Namen deines Formates trägt (in deinem Fall "qwe") erzeugen! Dann musst in diesem Schlüssel der Zeichenfolge namens <Standard> den Wert zuweisen, unter welchem "kompakten" Schlüssel (auch unter HKEY_CLASS_ROOT in deiner Registry) du alle Angaben zu diesem Format angeben willst.
    Hast du dort "MyFileExt" eingegeben, so musst du noch einen neuen Schlüssel wieder erzeugen - wieder dort wo du den anderen erzeugt hast und dieser muss dann in diesem Fall auch "MyFileExt" heissen .
    In diesem Schlüssel selbst erzeugst du zwei neue - der eine heisst "DefaultIcon", der andere heisst "shell". Im DefaulIcon-Schlüssel gibst du <Standard> als Wert den Pfad von deinem Icon oder der Icon-Datei, die dein Format kennzeichen soll.
    Im shell-Schlüssel erzeugst du nochmal einen namens "open", und in diesem wiederum einen namens "command". <Standard> im command-Schlüssel bekommt als Wert den Pfad deiner Anwendung UND BITTE JETZT AUFPASSEN:
    direkt dahinter " %1" !!!!!!!!!!!
    also wenn deine Anwendung den Pfad hat:

    C:\C++\MeineAnwendung.exe

    dann musst du

    C:\C++\MeineAnwendung.exe %1

    bei <Standard> von shell als Wert eingeben !

    Naja, das müsste mit den Funktionen von TRegistry funzen !

    Nun gut, meine Finger tun schon weh vom tippen, muss surfen (mit der Maus *g*)!

    Hoffe, ich konnte dir helfen !

    body



  • Um den übergebenen Dateinamen dann im eigenen Programm auszuwerten benutzt man üblicherweise die Funtion ParamStr(). Ein Beispiel:

    __fastcall TForm1::TForm1(TComponent* Owner)
      : TForm(Owner)
    {
      if (ParamStr(1) != "")
        Memo1->Lines->LoadFromFile(ParamStr(1));
    }
    

    Als ergänzende Lektüre seien auch folgende Snippets empfohlen:
    http://www.bytesandmore.de/rad/cpp/snipp/sc06016.php
    http://www.bytesandmore.de/rad/cpp/snipp/sc03026.php


Anmelden zum Antworten