Dateizuordnung verwenden

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Dateizuordnung verwenden

    Hallo zusammen!

    Ich bin grade dabei, ein Vokabel-Lernprogramm zu schreiben und benötige deshalb das Feature "Dateizuordnungen" im Veröffentlichungsdialog. Das klappt auch soweit ganz gut, aber ich kann in der Verwendung den Pfad (noch sonst irgendwas) der angeklickten Datei nicht auslesen, um sie in meinem Programm zu öffnen.
    Ich versuche es so:

    VB.NET-Quellcode

    1. Dim s As String = Command()
    2. If s <> "" Then
    3. Try
    4. OpenFile(s.Split("""")(1))
    5. Catch
    6. End Try
    7. End If

    ... jedoch wie gesagt ohne Erfolg

    Mfg, Cronoxyd
    Bilder
    • dateizuordnung.png

      45,22 kB, 693×396, 489 mal angesehen
    Schmeiß Try-Catch raus, dann siehst Du endlich, was nicht passiert.
    Ansonsten ist der Code irgendwie :thumbdown:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich glaube ich habe das Problem falsch formuliert.
    Also, ich habe ein Vokabellern-Programm geschrieben und das auch mit Visual Studio auch veröffentlicht. Zuvor habe ich in den Veröffentlichungsoptionen eine Dateizuordnung hinzugefügt, sodass der Benutzer Dateien meines Programms bequem aus dem Explorer öffnen kann. Jetzt ist es aber so, dass ich nicht weiß (bzw. alle meine Versuche mit Command() schlugen fehl), wie man den Pfad der Datei herausfindet, die im Explorer angeklickt wurde. :D
    Danke für den Tipp mit dem ObjectBrowser, obwohl ich da ab und zu bin wäre ich nie darauf gekommen, diese Seite zu verwenden. Ich habe die auf der Seite vorgeschlagene Lösung mit Environment.GetCommandLineArgs() jedoch auch ohne Erfolg ausprobiert. Es ist fast so, als ob Windows den Pfad der im Explorer angeklickten Datei überhaupt nicht übergeben würde... ;(
    @ErfinderDesRades:
    Wieder jemand, der erst lesen lernen muss. :thumbsup:
    @Cronoxyd:
    Sieh Dir mal das Bild an:
    Bilder
    • Args.jpg

      119,49 kB, 882×619, 429 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    naja - sie könnens ja eigentlich, aber sie tuns aus iwelchen Gründen nie. Das macht mich schon gelegentlich bisserl fassungslos.
    Wenn ich eine Antwort mit 2 Sätzen poste, kriege ich meist keine Antwort, oder es wird nur der unwichtigere Satz rausgepickt und behandelt, und der wichtigere - den hättich auch ins Klo schwätzen können.

    Es sieht wirklich so aus, dass man mit geschriebenem Text heutzutage nicht mehr kommunizieren kann, sondern nurnoch mit Bildchen oder gar Videos.

    Wäre evtl. gar ein Ansatz für eine ganz neue Foren-Software, bei der man beim Posten gleich ein Video mitschneiden kann.
    Ganz im Ernst: Könnte man mit dem Betreiben von Programmierer-Foren Geld verdienen, wäre das die GeschäftsIdee des Jahrzehnts, sagichmal.

    ;(

    @TE: was meinst du mit "Seite"? Der OB ist ein in der IDE integriertes Tool, der ist nicht im Internet.
    @ RodFromGermany:
    Ich habe deinen Tipp mit dem Debugger angewendet und eine kleine Testreihe durchgeführt:

    1. Befehlsübergabe durch Debugger
    Die Argumente werden bei den Anwendungseigenschaften im Tab "Debugger" eingegeben und der Debugger gestartet.
    Resultat: Argumente werden übergeben, dass Programm kann die Datei öffnen

    2. Befehlsübergabe durch Windows-Explorer (Öffnen mit...)
    Die zu öffnende Datei wird mit der rechten Maustaste im Explorer angeklickt, dann wird im DropDown Menü "Öffnen mit..." das Programm ausgewählt
    Resultat: Argumente werden übergeben, dass Programm kann die Datei öffnen

    3. Befehlsübergabe durch Windows-Explorer
    Eine Dateizuordnung auf die gewünschte Dateiendung wird gesetzt und das Programm wird veröffentlicht. Anschließend wird auf die Datei im Explorer doppelgeklickt.
    Resultat: Argumente werden nicht übergeben, dass Programm kann die nicht Datei öffnen

    Fazit
    Offensichtlich werden keine durch Command(), Interaction.Command, Environment.GetCommandLineArgs(), oder Environment.CommandLine abrufbaren Argumente durch den Windows Explorer (Windows Vista) beim Doppelklick übergeben.
    Wenn 3. nicht funktioniert, hast Du beim Registrieren was falsch gemacht.
    Mach mal im Explorer: Immer öffnen mit ... oder so ähnlich.
    Und suche mal nach Threads Dateiendung registrieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!