|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ruslan Bondarev 2:463/94.12 31 Dec 2001 15:06:08 To : Andrew Ustinchik Subject : Re: нажат ли Shift? -------------------------------------------------------------------------------- Воскресенье Декабрь 30 2001 23:20, Andrew Ustinchik -> Artem Chuprina: AU> надо отследить, нажат ли в данный момент shift и в зависимости от AU> этого исполнять разный код. если шифт не нажат делать sub Prog1 если AU> нажат - sub Prog2. ставлю вопрос: КАК ОТСЛЕДИТЬ, HАЖАТА ЛИ В ДАHHЫЙ AU> МОМЕHТ КЛАВИША Shift ? причём не факт нажатия как такового, а факт её AU> удержания в данный момент. AU> чего курить? можно и виндовое, хотя лучше портабельное. Кури. use strict; use Win32::Console; my $IN = new Win32::Console(STD_INPUT_HANDLE); $IN->Mode(ENABLE_PROCESSED_INPUT); $IN->Flush(); my $shiftpressed = 0; while ($IN->GetEvents) { my @event = $IN->Input(); my $code = $event[3]; if ($event[0] == 1 && $event[1] && $code == 16) { # we have shift pressed $shiftpressed = 1; } elsif ($event[0] == 1 && !$event[1] && $code == 16) { # we have shift released $shiftpressed = 0; } } ... bye. --- Медленно любила, пережевывая... * Origin: (2:463/94.12) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/27783c3070ff.html, оценка из 5, голосов 10
|