Win32 SendInput Overflow
Von: Ralph 'rkhb' Bauer (rkhbng@gmx.net) [Profil]
Datum: 06.07.2009 12:07
Message-ID: <h2sici$ubq$00$1@news.t-online.com>
Newsgroup: de.comp.os.ms-windows.programmer
Datum: 06.07.2009 12:07
Message-ID: <h2sici$ubq$00$1@news.t-online.com>
Newsgroup: de.comp.os.ms-windows.programmer
Hallo, ich experimentiere gerade mit SendInput dem Win32-API (WinXPSP3 mit allen Updates) herum und bin auf folgendes Phänomen gestoßen: Versendet man mehr als 10000 Input-Strukturen an Notepad, dann werden nur 10000 Strukturen gesendet, der Rest kommentarlos "vergessen". Zurückgegeben wird allerdings die volle Input-Anzahl, eine Abfrage von GetLastError dürfte also keine Erkenntnis bringen. Auch in der Ereignisanzeige findet sich nichts. Teilt man die Sendung in mehrere Abschnitte zu je maximal 10000 Inputs auf, dann muss man zwischen dem Versenden eine Pause mit Sleep() einlegen. Die notwendige Länge der Pause variiert bei mir zwischen 500 und 3000 ms. Per Google habe ich noch nicht einmal herausgefunden, welcher Puffer da überläuft. Die MSDN spricht von "keyboard input stream" (<http://msdn.microsoft.com/en-us/library/ms646310(VS.85).aspx>). An anderer Stelle existieren nur noch "message queues" (<http://msdn.microsoft.com/en-us/library/ms646267(VS.85).aspx#_win32_Keyboard_Input_Mo del>). Andere sprechen von "keyboard buffer", "event queue" und anderes. Dementsprechend habe ich auch noch keinen Tipp gefunden, womit ich den Overflow vermeiden/abfangen/händeln kann, ohne auf das Glücksspiel mit Sleep() angewiesen zu sein. Oder fehlt mir einfach nur die richtige Erleuchtung? viele grüße ralph[ Auf dieses Posting antworten ]
Antworten
- Uwe Sieber (09.07.2009 09:06)
- Ralph 'rkhb' Bauer (09.07.2009 09:58)
- Uwe Sieber (09.07.2009 11:28)
- Ralph 'rkhb' Bauer (09.07.2009 15:11)
