F
Foxdie
Hi
Über die Suche habe ich leider nichts gefunden.
Meine Vorgeschichte:
Ich habe ein VBA Makro (Excel), dass eine andere Anwendung öffnet und dort über mehrere Fenster hinweg Tasten (und Wörter) sendet, die dann abgearbeitet werden. Geht im konkreten Fall um eine Automatisierung bestimmter Arbeitsschritte.
Habe dies zuerst mit Sendkeys realisiert.
Unerwarteterweise streikt Sendkeys auf einmal. Keine Ahnung warum. Produziert nur Fehler.
Nun wollte ich diesen Bereich gegen API Code austauschen, es müssen auch Tastenkommandos wie z.B. ALT+L oder ALT+Z gesendet werden. Habe mir dafür KEYD_EVENT ausgesucht, dieser Befehl arbeitet ja mit ACSII Codes und die klappen so weit auch.
Der betreffende Code sieht wie folgt aus:
Das Problem ist folgendes:
Wenn ich sage drücke ALT + TASTE und dann wieder sage lass ALT + TASTE los, bleibt ALT gedrückt
Das heißt jede nachfolgende Taste intepretiert er als ALT + TASTE, was kann das nur sein?
Für reden Rat bin ich dankbar!
Über die Suche habe ich leider nichts gefunden.
Meine Vorgeschichte:
Ich habe ein VBA Makro (Excel), dass eine andere Anwendung öffnet und dort über mehrere Fenster hinweg Tasten (und Wörter) sendet, die dann abgearbeitet werden. Geht im konkreten Fall um eine Automatisierung bestimmter Arbeitsschritte.
Habe dies zuerst mit Sendkeys realisiert.
Unerwarteterweise streikt Sendkeys auf einmal. Keine Ahnung warum. Produziert nur Fehler.
Nun wollte ich diesen Bereich gegen API Code austauschen, es müssen auch Tastenkommandos wie z.B. ALT+L oder ALT+Z gesendet werden. Habe mir dafür KEYD_EVENT ausgesucht, dieser Befehl arbeitet ja mit ACSII Codes und die klappen so weit auch.
Der betreffende Code sieht wie folgt aus:
Code:
status_fenster = "Auftragsauswahl TelAs/ISDN/Montage"
hWnd = FindWindowByCaption(status_fenster)
If hWnd = 0 Then
fehler_zeit = fehler_zeit + 1
Call fehler_erk
Else
Call BringWindowToTop(hWnd): _
Call ShowWindow(hWnd, SW_RESTORE): _
Call keybd_event(VK_ALT, 0, 0, 0)
Call keybd_event(Asc("L"), 0, 0, 0)
Call keybd_event(Asc("L"), 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_ALT, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_ALT, 0, 0, 0)
Call keybd_event(Asc("Z"), 0, 0, 0)
Call keybd_event(Asc("Z"), 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_ALT, 0, KEYEVENTF_KEYUP, 0)
For I = 1 To Len(v_onkz)
Call keybd_event(Asc(Mid(v_onkz, I, 1)), 0, 0, 0)
Call keybd_event(Asc(Mid(v_onkz, I, 1)), 0, KEYEVENTF_KEYUP, 0)
Next
Call keybd_event(VK_TAB, 0, 0, 0)
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0)
For I = 1 To Len(v_tal)
Call keybd_event(Asc(Mid(v_tal, I, 1)), 0, 0, 0)
Call keybd_event(Asc(Mid(v_tal, I, 1)), 0, KEYEVENTF_KEYUP, 0)
Next
Das Problem ist folgendes:
Wenn ich sage drücke ALT + TASTE und dann wieder sage lass ALT + TASTE los, bleibt ALT gedrückt
Das heißt jede nachfolgende Taste intepretiert er als ALT + TASTE, was kann das nur sein?
Für reden Rat bin ich dankbar!
Zuletzt bearbeitet von einem Moderator: