gewählter Com-Port speichern

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    gewählter Com-Port speichern

    Hi,

    ich habe ein Programm geschrieben, welches mit einem seriellen Com-Port kommuniziert. Wie schaffe ich es, dass nach dem Schließen der Anwendung und erneutem öffnen, die Anwendung sich den vorher gewählten Port merkt und öffnet?

    Hier mein bisheriger Com-Port Code:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. List_COM_Port.Items.AddRange(IO.Ports.SerialPort.GetPortNames())
    3. If List_COM_Port.Items.Count = 0 Then
    4. MessageBox.Show("Die ComPort´s am PC wurden überprüft" + vbCrLf + "Es ist kein ComPort vorhanden")
    5. Else
    6. List_COM_Port.SelectedIndex = 0
    7. End If
    8. End Sub


    VB.NET-Quellcode

    1. Private Sub Button_Verbinden_Click(sender As System.Object, e As System.EventArgs) Handles Button_Verbinden.Click
    2. Try
    3. SerialPort1.PortName = List_COM_Port.Text
    4. SerialPort1.Open()Kontrolle_Port_Ein.BackColor = Color.Green
    5. Kontrolle_Port_Menü_Ein.BackColor = Color.Green
    6. SerialPort1.WriteLine("v?" + vbCr)
    7. Catch ex As ExceptionMessageBox.Show("Öffnen Com-Port fehlgeschlagen oder ist schon geöffnet")
    8. End Try
    9. End Sub


    Gruß Andreas

    Dieser Beitrag wurde bereits 10 mal editiert, zuletzt von „Hicki“ ()

    @Hicki:: Merk Dir das Port (String) in My.Settings.
    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!

    Hicki schrieb:

    Über etwas mehr Hilfe wäre ich sehr dankbar.
    Du postest hier im Hauptforum. Da wird solch als vorhandenes Grundlagenwissen vorausgesetzt.
    Such im Forum nach My.Settings.
    Suchergebnisse

    Suchergebnisse 1-30 von insgesamt 1 000 für »My.Settings«. Es gibt noch weitere Suchergebnisse, bitte verfeinere deine Suche.
    Diese Suchbegriffe wurden hervorgehoben: My.Settings
    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!
    Die Settings werden zwar geschrieben, aber nicht in die Combobox<List_Com_Port> übertragen.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. List_COM_Port.Items.AddRange(IO.Ports.SerialPort.GetPortNames())
    3. List_COM_Port.Text = My.Settings.ComPort_Einstellung
    4. If List_COM_Port.Items.Count = 0 Then
    5. MessageBox.Show("Die ComPort´s am PC wurden überprüft" + vbCrLf + "Es ist kein ComPort vorhanden")
    6. Else
    7. List_COM_Port.SelectedIndex = 0
    8. End If
    9. End Sub

    VB.NET-Quellcode

    1. Private Sub Button_Verbinden_Click(sender As System.Object, e As System.EventArgs) Handles Button_Verbinden.Click
    2. Try
    3. SerialPort1.PortName = List_COM_Port.Text
    4. SerialPort1.Open()Kontrolle_Port_Ein.BackColor = Color.Green
    5. Kontrolle_Port_Menü_Ein.BackColor = Color.Green
    6. My.Settings.ComPort_Einstellung = List_COM_Port.Text
    7. My.Settings.Save()
    8. My.Settings.Reload()
    9. SerialPort1.WriteLine("v?" + vbCr)
    10. Catch ex As ExceptionMessageBox.Show("Öffnen Com-Port fehlgeschlagen oder ist schon geöffnet")
    11. End Try
    12. End Sub




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

    Hicki schrieb:

    VB.NET-Quellcode

    1. List_COM_Port.Text = My.Settings.ComPort_Einstellung
    Setz auf diese Zeile einen Haltepunkt und überzeuge Dich davon, was tatsächlich im Setting steht.
    Was für ein Control ist List_COM_Port :?:
    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!
    @Hicki::

    RodFromGermany schrieb:

    Setz auf diese Zeile einen Haltepunkt und überzeuge Dich davon, was tatsächlich im Setting steht.
    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 habe mal noch eine Frage: Wo werden die Einstellungen(my.settings) im PC gespeichert(bei xp, Vista, Windows7)? Und beim ersten Start des Programmes auf einem anderen PC kommt von Framework eine Fehlermeldung. Warum?

    Kann man die Meldung verhindern?



    Gruß Andreas

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Hicki“ ()

    Hicki schrieb:

    Wie kann ich das ändern?
    Indem Du dafür sorgst, dass das Port vorhanden ist oder mit seinem richtigen Namen angesprochen wird.

    RodFromGermany schrieb:

    Setz auf diese Zeile einen Haltepunkt und überzeuge Dich davon, was tatsächlich im Setting steht.
    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!

    Hicki schrieb:

    Ja, woher weiß ich denn,
    was ich im 1. Post geschrieben habe?

    Hicki schrieb:

    VB.NET-Quellcode

    1. List_COM_Port.Items.AddRange(IO.Ports.SerialPort.GetPortNames())
    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!

    iEi schrieb:

    Ist ein Port nicht ein Integer ?
    Nö.
    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!