kostenloser Webspace werbefrei: lima-city


Datei an Programm übergeben

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    zet

    zet hat kostenlosen Webspace.

    Hi Leute,

    Ich arbeite mit VB.NET 9.0.
    Ich habe mein Programm mit dem Dateityp \".asd\" asoziiert.
    Wenn ich jetzt auf eine datei wie zb test.asd doppelklicke wird mein Programm gestartet. Nur wie erfahre ich jetzt im Programm welche datei das war. Also dass ich zb diese Datei dann wie in einem Texteditor öffnen und auslesen kann.
    Danke schonmal für eure Hilfe, MFG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. misterdemeanor

    Kostenloser Webspace von misterdemeanor, auf Homepage erstellen warten

    misterdemeanor hat kostenlosen Webspace.

    Grüß Dich,

    schaue Dir mal die My.Application.CommandLineArgs Property an.
    Ist eine (nullbasierte) ReadOnlyCollection(Of String).

    Also solltest Du mit folgendem Code

    Dim s As String
    Dim CmdLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
      CmdLineArgs = My.Application.CommandLineArgs
      s = CmdLineArgs(0)


    in s den Dateinamen haben.

    So kannstDu irgendwo in Deinem Programm auf die Kommandozeilenargumente zugreifen.
    Wenn Du diese direkt beim Programmaufruf benötigst kannst Du natürlich die Sub Main dementsprechend deklarieren. Also z.B. so:
    Public Sub Main(ByVal cmdArgs() As String)

    und Du hast nun ein StringArray mit den Argumenten.

    BG, Felix -misterdemeanor-


    Beitrag geändert: 25.5.2008 22:43:56 von misterdemeanor
  4. Autor dieses Themas

    zet

    zet hat kostenlosen Webspace.

    Danke für die schnelle antwort, nur leider hatte ich diese Idee auch schon. Ich habe es nochmal mit deinem Code versucht. Leider wirft mir das Programm aber einen Fehler aus. Scheinbar werden keine Parameter übergeben. Wenn ich das Programm mit Parametern starte funkt es perfekt, nur wenn ich die Datei doppelklicke und dann das Programm geöffnet wird werden scheinbar keine Parameter übergeben.
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Also die beste Lösung ist es, eine Sub Main() zu verwenden, die als Startprozedur der Anwendung festgelegt ist:

    Public Sub Main(ByVal Args() As String)
        \' Weiterer Code...
    End Sub



    Um einen Dateitypen für dein Programm erfolgreich zu registrieren, musst du folgende Informationen in die Registry eintragen:
    Name (Der Name des Dokumenttyps)
    Extensions (Die verknüpften Dateinamenserweiterungen)
    Command (Das Programm, das für diesen Dateitypen registriert werden soll)
    Description (Die Beschreibung für den Dateityp)
    Icon (Das Dateisymbol)

    Anschließend musst du die unterstützten Aktionen für den Dateityp festlegen. Jede Aktion erfordert drei weitere Informationen:
    Name (Der Name der Aktion, der z.B. im Kontextmenü erscheint)
    Arguments (Befehlszeilenargumente, die an die Anwendung übergeben werden. %1 übergibt den Dateinamen)
    Verb (Zeigt den Aktionstyp an, zum Beispiel \"open\" oder \"print\")



    Und so, wie du dein Problem schilderst, fehlt wohl bei Arguments das %1.



    Achja, wie das alles genau funktioniert kannst du in diesem Buch nachlesen:
    http://www.edv-buchversand.de/mspress-edvbv/productinfo.asp?&cnt=productinfo&id=ms-092&type=0&lng=0

    Beitrag geändert: 26.5.2008 16:59:40 von cbhp
  6. Wenn du Sub Main() aktivierst, funktioniert der Application Framework nicht mehr. Einfacher wäre es, wenn du die Funktion Environment.GetCommandLineArgs() benutzt.

    Dim str As String = Environment.GetCommandLineArgs(0)
    
    \' str ist dann ein String-Array
    \' str(0) beinhaltet dann den ersten Parameter
    \' str(1) den zweiten
    \' usw...

    Ryan

    Beitrag geändert: 26.5.2008 17:08:02 von ryanblack
  7. Autor dieses Themas

    zet

    zet hat kostenlosen Webspace.

    Ja ich hatte wirklich das %1 nicht angegeben, danke für die schnelle HIlfe. Ich habe jetzt alles geändert und es funktioniert einwandfrei, echt danke an alle die geantwortet haben
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!