Thread Globales Tasten-Event abfangen (win)
(20 answers)
Opened by GoodFella at 2007-02-28 12:24
Cool danke... Es funktioniert soweit, bis auf dass es nicht einen Key Event empfängt, sondern, drückt man die Taste einmal, immer zu true evaluiert, bis man die Taste nochmal drückt. Bei Numlock und Scrolllock ist das ja gewünscht, aber bei normalen Tasten wie Escape = 0x1b nicht, hier mal das Beispielscript:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #!/usr/local/bin/perl -w use Tk; use Win32::KeyState qw(:get); my $main = new Tk::MainWindow; $main->geometry('1030x740'); my $vis = 1; sub read_stuff { &switch_vis if ((GetKeyState(0x1b) & 1) == 1); } $handler = $main->repeat(500, \&read_stuff); sub switch_vis { if($vis == 0) { $vis = 1; $main->deiconify; } else { $vis = 0; $main->iconify; } } MainLoop; Drückt mal Enter und nach einiger Zeit nochmals, dann seht ihr was ich meine. |