zorro
Dec 29th, 1999, 02:40 AM
Is there a way I could print ascii characters using api. well, i know i can do it, but it isn't working. I made a sub that you send the ascii code to and want to make it type that character. Here is the code for the sub.
Sub KeyPress(KeyAscii)
KeyAscii = LTrim$(KeyAscii)
keybd_event VK_MENU, 0, 0, 0 ' press Alt
i = 1
Do
If Mid(KeyAscii, i, 1) = 1 Then
keybd_event VK_NUMPAD1, 0, 0, 0
keybd_event VK_NUMPAD1, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 2 Then
keybd_event VK_NUMPAD2, 0, 0, 0
keybd_event VK_NUMPAD2, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 3 Then
keybd_event VK_NUMPAD3, 0, 0, 0
keybd_event VK_NUMPAD3, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 4 Then
keybd_event VK_NUMPAD4, 0, 0, 0
keybd_event VK_NUMPAD4, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 5 Then
keybd_event VK_NUMPAD5, 0, 0, 0
keybd_event VK_NUMPAD5, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 6 Then
keybd_event VK_NUMPAD6, 0, 0, 0
keybd_event VK_NUMPAD6, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 7 Then
keybd_event VK_NUMPAD7, 0, 0, 0
keybd_event VK_NUMPAD7, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 8 Then
keybd_event VK_NUMPAD8, 0, 0, 0
keybd_event VK_NUMPAD8, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 9 Then
keybd_event VK_NUMPAD9, 0, 0, 0
keybd_event VK_NUMPAD9, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 0 Then
keybd_event VK_NUMPAD0, 0, 0, 0
keybd_event VK_NUMPAD0, 0, KEYEVENTF_KEYUP, 0
End If
i = i + 1
Loop Until i = Len(KeyAscii) + 1
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 ' release Alt
End Sub
If i get rid of the alt press and release parts, it prints the ascii code perfectly, i guess it is something to do with the alt part. Any help would be useful.
Thanks.
Sub KeyPress(KeyAscii)
KeyAscii = LTrim$(KeyAscii)
keybd_event VK_MENU, 0, 0, 0 ' press Alt
i = 1
Do
If Mid(KeyAscii, i, 1) = 1 Then
keybd_event VK_NUMPAD1, 0, 0, 0
keybd_event VK_NUMPAD1, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 2 Then
keybd_event VK_NUMPAD2, 0, 0, 0
keybd_event VK_NUMPAD2, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 3 Then
keybd_event VK_NUMPAD3, 0, 0, 0
keybd_event VK_NUMPAD3, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 4 Then
keybd_event VK_NUMPAD4, 0, 0, 0
keybd_event VK_NUMPAD4, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 5 Then
keybd_event VK_NUMPAD5, 0, 0, 0
keybd_event VK_NUMPAD5, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 6 Then
keybd_event VK_NUMPAD6, 0, 0, 0
keybd_event VK_NUMPAD6, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 7 Then
keybd_event VK_NUMPAD7, 0, 0, 0
keybd_event VK_NUMPAD7, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 8 Then
keybd_event VK_NUMPAD8, 0, 0, 0
keybd_event VK_NUMPAD8, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 9 Then
keybd_event VK_NUMPAD9, 0, 0, 0
keybd_event VK_NUMPAD9, 0, KEYEVENTF_KEYUP, 0
ElseIf Mid(KeyAscii, i, 1) = 0 Then
keybd_event VK_NUMPAD0, 0, 0, 0
keybd_event VK_NUMPAD0, 0, KEYEVENTF_KEYUP, 0
End If
i = i + 1
Loop Until i = Len(KeyAscii) + 1
keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 ' release Alt
End Sub
If i get rid of the alt press and release parts, it prints the ascii code perfectly, i guess it is something to do with the alt part. Any help would be useful.
Thanks.