Griever: VB.NET - Dateityp registrieren ???

Hi.

Ich habe schon einige .NET-Programme gesehen, in denen die Dateitypen im System registriert werden und dann z. B. auf dem Desktop mit einem Icon versehen werden. Und wenn man da drauf klickt, öffnet sich die Datei automatisch im Programm, welches diese Dateien erstellt hat/lesen kann.

Wenn es dafür eine Hilfe/Tutorial/ausführliches Beispiel gibt, wäre ich sehr Dankbar.

Auch über die Eingabe für soetwas würde ich mich freuen (Also den Code).

MFG
Griever

  1. Hallo Griever,

    alles keine Hexerei! ;o)

    Wenn Du mit Visual Studio arbeitest, kannst Du dort ein Setup-Projekt anlegen. In diesem kannst Du dann Registryeinträge hinterlegen, die beim Setup der Software (meist .MSI) eingefügt werden. Müsste dort auch über nen Wizard oder so möglich sein.

    (z.B. http://www.codeproject.com/dotnet/Win_App_Setup_Project.asp oder http://www.codeproject.com/useritems/SetupProject_I_WebSetup.asp)

    Alternativ kannst Du die Registryeinträge Dir selber basteln.

    Die Einträge sehen dann z.B. so aus:

    [HKEY_CLASSES_ROOT.xxx]
    @="xxxFile"
    "Content Type"="application/ApplicationName"

    [HKEY_CLASSES_ROOT\xxxFile]
    @="xxx Application"
    "EditFlags"=hex:00,00,01,00

    [HKEY_CLASSES_ROOT\xxxFile\shell]
    @="open"

    [HKEY_CLASSES_ROOT\xxxFile\shell\open]

    [HKEY_CLASSES_ROOT\xxxFile\shell\open\command]
    @="C:\Programme\ApplicationDirectory\Application.exe %1"

    [HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/ApplicationName]
    "extension"=".xxx"

    Professioneller gehts natürlich mit diverser Software zum Erstellen von Setuproutinen z.B. Installshield etc.

    Gruss
    LeKuchen

    1. Hey danke.

      Kannst du mir das auch mal etwas genauer erklären? Z. B. wofür jede Zeile wirkt.

      Aber erstmal danke.

      Gruß aus Gotha
      Ggriever-Homepage

      1. Hallo Griever,

        [HKEY_CLASSES_ROOT.xxx]
        @="xxxFile"
        "Content Type"="application/ApplicationName"

        -> Registriert einen Dateityp (xxx ist die Dateiendung, xxxFile der Name des Dateityps) und weist eine Anwendung dem Typen zu

        [HKEY_CLASSES_ROOT\xxxFile]
        @="xxx Application"
        "EditFlags"=hex:00,00,01,00

        -> Keine Ahnung mehr wofür...

        [HKEY_CLASSES_ROOT\xxxFile\shell]
        @="open"

        [HKEY_CLASSES_ROOT\xxxFile\shell\open]

        [HKEY_CLASSES_ROOT\xxxFile\shell\open\command]
        @="C:\Programme\ApplicationDirectory\Application.exe %1"

        -> Einträge legen fest, dass die Datei bei Doppelklick geöffnet wird mit dem angegebenen Kommando. Den Pfad der Datei muss man beim Setup natürlich parametrisieren - die %1 damit keine Nachfrage beim Öffnen kommt.

        [HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/ApplicationName]
        "extension"=".xxx"

        -> Registrierung der Dateiendung im OS.

        Aber Achtung: Wenn Du das so der Registry hinzufügst, (du kannst die Zeilen ein eine Textdatei schreiben, ihr die Endung .reg geben und per Doppelklick ausführen) wird der Dateityp afaik nur für den aktuellen Benutzer registriert.

        LeKuchen

        1. Ah. Danke

          Das ist super. Danke für die Informationen.

          Ich hoffe, ich kann das irgendwann mal bei dir wieder gut machen. Jetzt aber not unbedingt in VB.NET

          MFG
          Griever