Windows på skærmen tastatur og java.awt.Robot mus problemer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger java.awt.Robot til at sende mushændelser på et Windows 7 (64-bit) -system. Dette er grundlæggende at konvertere berøringshændelser til mus input. For at give brugerne mulighed for at indtaste tegn i programmer, havde jeg planer om at genbruge den indbyggede -I Windows-tastaturet på skærmen (osk.exe).


Imidlertid har jeg ramt en snag. Enhver mus down-begivenhed genereret af Robot, der sker, når markøren er over vinduets udsmykning af OSK-vinduet (titellinje, systemmenu osv.) Fryser musen. musen ned hændelsen behandles, da jeg kan se OSK få fokus. Robot fortsætter med at sende andre museventilfælde, men de har ingen effekt på OSK-vinduet. Den eneste vej ud er at trykke/frigive den fysiske USB-mus fastgjort til systemet.


Det mærkelige er, at ved at bruge OSK til at indtaste tegn ved at sende musetrykker på OSK tastaturknapperne fra Robot fungerer det fint. Det er bare det, der forsøger at flytte (eller lukke) OSK-vinduet fryser musens håndtering.


Jeg har set et par andre spørgsmål om OSK og begivenheder, hvilket tyder på, at OSK er lidt af en speciel applikation. Men jeg undrer mig over, hvad forskellen er mellem museventilerne genereret af Robot og dem fra USB mus, da OSK reagerer anderledes på dem og Robot angiveligt genererer indfødte begivenheder?

Bedste reference