[VB.NET 2005] Mit keybd_event Text senden

payerot

Grünschnabel
So, habe diese Funktion aus einem meiner CPP Projekte entnommen und etwas angepasst. Leider bekomm ich das mit dem Shift drücken bei Kapitalen nicht hin :(

Hier mal der Code:
Code:
Public Declare Auto Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" (ByVal cChar_Renamed As Byte) As Short

Private Sub WriteText(ByVal text As String) ' text = "Hallo"
    Dim länge As Integer = text.Length
    Dim position As Integer = 0

    While länge <> position
        Dim vk As Short = VkKeyScan(System.Convert.ToByte(text.Chars(position)))

        If (vk >> 8) & 1 Then
            keybd_event(vkc.VK_LSHIFT, 0, 0, 0)
        End If
        
        ' Hier unten bekomm ich eine Fehlermeldung "Die arithmetische
        ' Operation hat einen Überlauf verursacht." also Division
        ' durch 0, NUR bei Kapitalen!.
        keybd_event(vk, 0, 0, 0)
        keybd_event(vk, 0, KEYEVENTF_KEYUP, 0)

        If (vk >> 8) & 1 Then
            keybd_event(vkc.VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0)
        End If

        position += 1
        System.Threading.Thread.Sleep(100)
    End While
End Sub
Kann mir jemand helfen?
 
Zuletzt bearbeitet:
Zurück