Hallo,
Ich möchte mit meinem VB-Programm dem SerialPort auslesen und mit My.Computer.Keyboard.SendKeys Buchstaben ausgeben lasen.
über den SerialPort werden die Zeichen A,B,C,D einzeln übertragen
Nur funktioniert das ganze nicht so wie ich es mir vorstelle :(
Danke im Voraus
Hier mein VB-Code:
Ich möchte mit meinem VB-Programm dem SerialPort auslesen und mit My.Computer.Keyboard.SendKeys Buchstaben ausgeben lasen.
über den SerialPort werden die Zeichen A,B,C,D einzeln übertragen
Nur funktioniert das ganze nicht so wie ich es mir vorstelle :(
Danke im Voraus
Hier mein VB-Code:
VB.NET-Quellcode
- Imports System.IO.Ports.SerialPort
- Public Class Form1
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Verfügbare Comports suchen Dim Ports As String() = GetPortNames() Dim Port As String
- 'Combobox richtig sortieren Combobox_Comport.Items.Clear()
- If Ports.Length > 0 Then 'für alle COM-Nr. < 10 ein Leerzeichen einfügen For ii As Integer = 0 To (Ports.Length - 1) If CInt(Ports(ii).Substring(3)) < 10 Then Ports(ii) = "COM " & Ports(ii).Substring(3) End If Next
- Array.Sort(Ports)
- 'das Leerzeichen in "COM x" wieder entfernen For ii As Integer = 0 To (Ports.Length - 1) Ports(ii) = "COM" & Ports(ii).Substring(3).Trim Next
- End If
- 'In die Combobox übernehmen For Each Port In Ports Combobox_Comport.Items.Add(Port) Next Port
- 'Buttons setzen Button_disconnect.Enabled = False Button_connect.Enabled = False
- End Sub
- Private Sub ComboBox_comport_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Combobox_Comport.SelectedIndexChanged If Combobox_Comport.SelectedItem <> "" Then Button_connect.Enabled = True End If End Sub
- Private Sub Button_disconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_disconnect.Click 'Verbindung trennen Timer2.Stop() Timer1.Enabled = False Button_connect.Enabled = True Button_disconnect.Enabled = False Combobox_Comport.Enabled = True SerialPort1.Close() End Sub
- Private Sub Button_connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_connect.Click 'Comport verbinden Timer2.Start() Try 'Buttons freigeben/sperren Button_connect.Enabled = False Button_disconnect.Enabled = True Combobox_Comport.Enabled = False
- 'Comport Einstellungen SerialPort1.PortName = Combobox_Comport.Text SerialPort1.BaudRate = 9600 SerialPort1.Open()
- Timer1.Enabled = True Catch ex As Exception 'Fehlermeldung MessageBox.Show("Achtung die Schnittstellen konnte nicht geöffnet werden:" & vbCrLf & ex.Message) Button_connect.Enabled = True Button_disconnect.Enabled = False Combobox_Comport.Enabled = True End Try End Sub
- Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If SerialPort1.IsOpen Then
- If (SerialPort1.ReadExisting() = "A") Then My.Computer.Keyboard.SendKeys("A", True) End If
- If (SerialPort1.ReadExisting() = "B") Then My.Computer.Keyboard.SendKeys("B", True) End If
- If (SerialPort1.ReadExisting() = "C") Then My.Computer.Keyboard.SendKeys("C", True) End If
- If (SerialPort1.ReadExisting() = "D") Then My.Computer.Keyboard.SendKeys("D", True) End If
- End If End SubEnd Class