Avatar billede tmouritsen Nybegynder
23. januar 2003 - 19:57 Der er 7 kommentarer

Lytte på tastaturinput fra inaktivt vindue

Jeg skal lave en AWT eller Swing applikation der selvom den er inaktiv kan lytte efter tastaturinput og kan udføre noget hvis der indtastes noget specielt.

Hvordan gør jeg det?
Avatar billede riversen Nybegynder
23. januar 2003 - 20:34 #1
altså lytte efter tastaturinput i et andet men aktiv vindue?
Avatar billede tmouritsen Nybegynder
23. januar 2003 - 20:45 #2
Nej

Applikationen består af ét vindue. Det vindue skal kunne lytte på tastaturet, selvom brugeren benytter en anden applikation, og så gøre sig selv aktiv når der bliver indtastet en bestemt tastekombination.
Avatar billede viht Nybegynder
23. januar 2003 - 20:47 #3
Så skal du lytte overalt i de andre applikationer og når du får det ønskede keyevent derfra skifte tilbage til det inaktive vindue. Dit deaktiverede vindue kan kun lytte på tataturinput når det er i fokus - som alle programmer.
Avatar billede tmouritsen Nybegynder
23. januar 2003 - 21:17 #4
Da jeg bruge ICQ var det muligt at angive at f.eks. Ctrl+n oprettede en ny note. Det fungerede også selvom jeg arbejdede i Word. Den overtog simpelthen den tastekombination. Det er noget i den retning jeg leder efter.
Avatar billede viht Nybegynder
23. januar 2003 - 21:43 #5
Det er alligevel utroligt det har virket.. så skal ICQ have lyttet i Word's messageloop. Det kan jeg ikke se hvordan er muligt. Slet ikke i Java :(
Avatar billede firehand Nybegynder
23. januar 2003 - 22:18 #6
Det der sker når du bruger ICQ-genvejene er som du siger at den overtager en del forskellige tastekombinationer fra systemet. Det kan du selv gøre ved at oprette en genvej og tildele en kombination til denne. Om det samme kan lade sig gøre med kortlæseren ved jeg ikke. Når du så aktiverer de reserverede taster bliver vinduet (ICQ) til det aktive og input ryger nu til dette istedet.

Tænk på det som en træstrutur. Windows ligger øverst og modtager input fra tastaturet. Kan den ikke bruge det sender den det videre til det aktive vindue. Hvis det aktive vindue ikke ved hvad det skal gøre med det, smider det det bare væk. De andre grene i træet får aldrig nogensinde inputtet at se, medmindre det er reserveret af dem i forvejen. Derfor skal det enten sende bolden videre og gøre kortlæserprogget aktivt eller selv behandle det.

Jeg ved ikke om I kan reservere den specifikke kode kortlæseren afsender, men det er da et forsøg værd.
Avatar billede firehand Nybegynder
23. januar 2003 - 22:27 #7
Alternativt kan I lave et program der ligger mellem Windows og det aktive program. Altså en selvstændig tastaturlæser. Det vil være irriterende kompliceret at lave i Java, da I er nødt til at starte alle andre applikationer der anvender tastaturet gennem denne.

Jeg ved heller ikke om det overhovedet er muligt på NT-maskineri. Det er jo en glimrende password-thief hvis man er til den slags.

Er der noget du vil have uddybet er du velkommen til at skrive...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester