Hallo,
die API-Funktion keybd_event ist im Grunde genommen auch nichts anderes als die SendKey-Funktion. Ob das dann für Deine Zwecke besser läuft, kann ich nicht beurteilen, da ich den Grund des (Verzögerungs)problems nicht nachvollziehen kann und nicht evtl. interne Unterschiede kenne. Ich glaube eher nicht, dass das Problem an Excel liegt.
Tastaturanschläge gehen immer an das momentane Vordergrundfenster, deshalb ist kein Handle und keine keine ID erforderlich. Es ist aber sicher zu stellen, dass sich kein anderes Fenster vormogeln kann. Falls der Focus mal weg sein sollte, hilft z.B. die API SetForegroundwindow.
Hier mal ein Beispiel zur Handhabung....
https://www.vbarchiv.net/api/api_kybd_event.html
Bzgl. der Funktion CreateObject("WScript.Shell").SendKeys gibt es diverse Rückmeldungen aus den Foren, dass der Bug da nicht auftritt. Bei mir kam das auch noch nicht vor.
<<<ich glaube ich mal gelesen, dass auch Excel die Windows-IDs auslesen kann (den Windows-Namen des Fensters kenne ich ja...>>>
Die IDs der Childwindows lassen sich auslesen, wenn man das Handle des Child-Fensters hat oder per Durchscannen anhand des Handles der Anwendungsfensters. Das hat mit Excel an sich nichts zu tun sondern geht über die API.
Du meinst wahrscheinlich das Handle Deines Anwendungsfensters. Handles ändern sich bei jedem Aufruf, IDs bleiben immer gleich.
viele Grüße
Karl-Heinz
|