Meine Datei mit Endung .xy öffnet mein Programm

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von possible31776.

    Meine Datei mit Endung .xy öffnet mein Programm

    Hallo,
    also ich habe jetzt einiges gelesen über das thema, und bin ehrlich mehr verwirrt als am anfang.
    hauptsächlich habe ich das problem in welche ereignisse dies zeilen herienkommen, also ob in form load, oder unter dem speichern button.

    als ich speicher ein datei so (auszug)

    VB.NET-Quellcode

    1. rivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2_sp.Click
    2. Dim sfd As New SaveFileDialog
    3. sfd.Filter() = "*.KITProd|*.KITProd"
    4. If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. My.Computer.FileSystem.WriteAllText(sfd.FileName, _
    6. Me.ComboBox2_T.Text & ";" & _
    7. Me.ComboBox1_G.Text & ";" & _


    diesen datei soll jetzt mein programm öffnen. wie gesagt meine hauptproblem ist, wo kommt was hin.
    naja kommt drauf an wie du es haben willst:

    1. Soll die Datei vor dem erscheinen der Form geöffnet werden? --> Form_Load()

    2. Soll die Datei auf Knopfdruck (z.B. Menü) geöffnet werden? --> Button_Click()


    \\Edit:

    ich würds so machen:

    VB.NET-Quellcode

    1. Sub Speichern()
    2. Dim sfd As New SaveFileDialog
    3. sfd.Filter() = "*.KITProd|*.KITProd"
    4. If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. Using sr As New IO.Streamwriter(sfd.filename)
    6. With sr
    7. .WriteLine(ComboBox2_T.Text)
    8. .WriteLine(ComboBox1_G.Text)
    9. .close()
    10. End With
    11. End Using
    12. End If
    13. End Sub



    VB.NET-Quellcode

    1. Sub Oeffnen()
    2. Dim ofd As New SaveFileDialog
    3. ofd.Filter() = "*.KITProd|*.KITProd"
    4. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. Using SR As New IO.Streamreader(ofd.FileName)
    6. With SR
    7. ComboBox2_T.Text = .Readline()
    8. ComboBox1_G.Text = .Readline()
    9. .Close()
    10. End With
    11. End Using
    12. End if
    13. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „CHULIO“ ()

    ih habe ein mdi container, mit einer fomr die abgespeichert wird, ich habe sowohl auf der form als auch in der menüleiste einen speicher befehl

    Im Beitrag von kevin89


    wo kommt Privat Function Registerfile hin, in die Form ober in den mdi

    wo kommt die if abfrage hin wahrscheinlich unter speichern, und wo kommt der befehl hin das er überhaupt einen eitrag macht???
    funktionier das auch im debug modus, oder muss ich erst veröffentlichen??
    uups hätte die Überschrift mal lesen sollen... OK das habe ich auch schon mal gemacht:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. 'Registriert die Dateiendung
    3. Registrieren()
    4. 'liest aus ob das programm von datei gestartet wurde und gibt ggf. den Dateipfad aus
    5. If My.Application.CommandLineArgs.Count > 0 Then
    6. Dim v As Array
    7. Dim mypath As String
    8. Dim commandlineargs As String = Environment.CommandLine
    9. v = Split(commandlineargs, """ ")
    10. mypath = v(1)
    11. Oeffnen(mypath)
    12. End If
    13. End Sub

    Diese Sub registriert deine Dateiendung und schreibt bei Erfolg einen Wert in die Registrie damit beim nächsten Programmstart nicht neu registriert wird

    VB.NET-Quellcode

    1. Sub Registrieren()
    2. Dim Registriert As Boolean
    3. If Not GetSetting(Application.StartupPath, "Abfrage", "erneutfragen", "nichts") = "True" & Application.ProductVersion Then
    4. 'Die Funkktioin Registerfile poste ich jetzt mal nicht da du sie ja scheinbar schon hast...
    5. If Registerfile(".KITProd", "KITProd-Datei", Application.StartupPath & "\Anwendung.exe", Application.StartupPath & "\ICON.ico") Then
    6. Registriert = True
    7. Else
    8. Registriert = False
    9. End If
    10. Else
    11. Registriert = True
    12. End If
    13. SaveSetting(Application.StartupPath, "Abfrage", "erneutfragen", Registriert.ToString & Application.ProductVersion)
    14. End Sub

    'Die Oeffnen Sub musst du entsprechend abändern

    VB.NET-Quellcode

    1. Sub Oeffnen(ByVal Path As String)
    2. Using SR As New IO.Streamreader(Path)
    3. With SR
    4. ComboBox2_T.Text = .Readline()
    5. ComboBox1_G.Text = .Readline()
    6. .Close()
    7. End With
    8. End Using
    9. End Sub
    Das ist alles in Form 1 load?

    Hab es nämlich probiert und es funktioniert nicht, die datei wir immer noch als editor dargestellt, so hab ich es verteilt

    im Hauprfenster /mdi.container/load ereignis

    VB.NET-Quellcode

    1. Registrieren()
    2. If My.Application.CommandLineArgs.Count > 0 Then
    3. Dim v As Array
    4. Dim mypath As String
    5. Dim commandlineargs As String = Environment.CommandLine
    6. v = Split(commandlineargs, """ ")
    7. mypath = v(1)
    8. Oeffnen(mypath) 'hier muss ich noch was basteln
    9. End If


    dann auch im Haupfenster

    VB.NET-Quellcode

    1. Dim Registriert As Boolean
    2. If Not GetSetting(Application.StartupPath, "Abfrage", "erneutfragen", "nichts") = "True" & Application.ProductVersion Then
    3. 'Die Funkktioin Registerfile poste ich jetzt mal nicht da du sie ja scheinbar schon hast...
    4. If Registerfile(".KITProd", "KITProd-Datei", Application.StartupPath & "\BK.exe", Application.StartupPath & "\BL-Logo.32x32_12.ico") Then
    5. Registriert = True
    6. Else
    7. Registriert = False
    8. End If
    9. Else
    10. Registriert = True
    11. End If
    12. SaveSetting(Application.StartupPath, "Abfrage", "erneutfragen", Registriert.ToString & Application.ProductVersion)
    13. End Sub


    auch im Hauptfenster

    VB.NET-Quellcode

    1. Dim objSubKey As Microsoft.Win32.RegistryKey
    2. Dim objSubKey2 As Microsoft.Win32.RegistryKey
    3. Dim Wert As String = namedesdateityps
    4. Dim sKey As String = endung
    5. Dim sKey2 As String = endung & "\ShellNew"
    6. Dim sEntry As String = "Content Type"
    7. Dim sValue As String = "text/plain"
    8. Dim sEntry2 As String = "PerceivedType"
    9. Dim sValue2 As String = "text"
    10. Dim sEntry3 As String = "Nullfile"
    11. objSubKey = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey)
    12. objSubKey.SetValue("", Wert)
    13. objSubKey.SetValue(sEntry, sValue)
    14. objSubKey.SetValue(sEntry2, sValue2)
    15. objSubKey2 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey2)
    16. objSubKey2.SetValue(sEntry3, "")
    17. Dim objSubKey3 As Microsoft.Win32.RegistryKey
    18. Dim sKey3 As String = namedesdateityps
    19. Dim sKey4 As String = namedesdateityps & "\shell\open\command"
    20. Dim skey5 As String = namedesdateityps & "\DefaultIcon"
    21. Dim sValue3 As String = namedesdateityps
    22. Dim objSubKey5 As Microsoft.Win32.RegistryKey
    23. Dim sValue5 As String = """" + pfadzuprogramm + """" + " %1"
    24. Dim sValue6 As String = """" + pfadzuicon + """"
    25. Dim objSubKey4 As Microsoft.Win32.RegistryKey
    26. objSubKey3 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey3)
    27. objSubKey3.SetValue("", sValue3)
    28. objSubKey4 = My.Computer.Registry.ClassesRoot.CreateSubKey(sKey4)
    29. objSubKey4.SetValue("", sValue5)
    30. objSubKey5 = My.Computer.Registry.ClassesRoot.CreateSubKey(skey5)
    31. objSubKey5.SetValue("", sValue6)
    32. Return True
    33. Catch ex As Exception
    34. Return False
    35. End Try


    übrigens zum öffnen, ich öffne normal so

    VB.NET-Quellcode

    1. Dim ofd As New OpenFileDialog
    2. ofd.Filter() = "*.KITProd|*.KITProd"
    3. If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
    4. My.Settings.SpeicherText = "[" & System.IO.Path.GetFileName(ofd.FileName) & "]"
    5. Dim v As Array = Split(My.Computer.FileSystem.ReadAllText(ofd.FileName), ";")
    6. Me.ComboBox2_T.Text = v(0)
    7. Me.ComboBox1_G.Text = v(1)
    8. Me.TextBox5_U.Text = v(2)
    9. Me.TextBox4_A.Text = v(3)
    10. Me.TextBox2_J.Text = v(4)
    11. My.Settings.Rk31 = v(5)
    12. My.Settings.K31M = v(6)


    ei mache ich das dann im sub öffnen??
    Danke für die Hilfe!!!

    Wieso leicht, wenn es auch schwer geht? xD

    Visual basic bietet von vornherein die möglichkeit Dateiendungen zu registrieren.

    Ihr müsst folgendes machen:

    1. Oben unter dem Menüpunkt "Projekt" auf "Deine Apllikation-Eigenschaften".
    2. In den Menüpunkt "Veröfentlichen" wechseln.
    3. Auf den Button "Optionen..." klicken.
    4. "Dateizuordnung" auswählen.
    5. Nun ganz einfach das dort ausfüllen.
    6. Fertig xD

    Zu Punkt 5 ein Beispiel:
    Bei Erweiterung: .mp3
    Bei Beschreibung: Eine Musikdatei
    Bei ProgID: mp3
    Bei Symbol: Hier fügst du ein Icon ein, dass dann bei der Datei .mp3 erscheinen soll

    So einfach gehts xD