Hjælp med at acceptere input fra et andet fokuseret vindue ved hjælp af Java

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil skrive et program, der svarer, når jeg trykker på en bestemt tast på tastaturet. Der vil dog være et helt uafhængigt fuldskærmsprogram, der kører i forgrunden, og mit program vil ikke have vinduets fokus.


Så, i grund og grund, hvad jeg vil gøre er at starte mit program og få det til at køre i baggrunden, og start derefter fuldskærmsprogrammet. Og så vil jeg kunne få mit program til at lave ting i baggrunden, når jeg trykker på en bestemt nøgle.


Er der en måde at gøre dette i Java? Hvis ikke, er der nogen måde at gøre det?


Min platform er Windows 7.

Bedste reference


Et tastetryk er en O/S-begivenhed. Du kan skrive en lytter i C ++ ved hjælp af kroge og derefter oprette en JNI-grænseflade oven på den.


Opslag MSDN-indgang til 'SetWindowsHookEx' -funktionen til tilslutningsprocedure.


Hvis du ikke ønsker at stå op med JNI, overveje at implementere lytteren i Visual C ++ eller Visual Basic og krydskompilere .NET-binarierne til Java bytecode. Her er et gratis værktøj til at gøre det: http://www.ikvm. net/[1]