Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

KeyDown   Найти похожие ветки 

 
kex86 ©   (2002-11-27 13:55) [0]

Как отлавливать нажатия клавиш, даже когда программа консольная и не активна?


 
Song ©   (2002-11-27 15:51) [1]

Консольная - нужно окно (можно скрытое) и обработчка очереди сообщений для него. После этого - RegisterHotKey()


 
kex86 ©   (2002-11-29 11:56) [2]

А если научно-популярней?


 
BoxTer ©   (2002-11-29 12:07) [3]

делай hook. Как? - не спрашивай - не скажу. Ищи на форуме - тьма..


 
asmith   (2002-11-29 14:27) [4]

Вот пример обработки консольного ввода безо всяких окон:

{$APPTYPE CONSOLE}
program ConsoleInput;

uses
Windows;

var
hInput: THandle;
arrInputRecs: array[0..9] of TInputRecord;
dwCur, dwCount: DWORD;
cCur: Char;
coorCur: TCoord;

begin
hInput := GetStdHandle(STD_INPUT_HANDLE);
while True do
begin
ReadConsoleInput(hInput, arrInputRecs[0], 10, dwCount);
for dwCur := 0 to dwCount - 1 do
case arrInputRecs[dwCur].EventType of
KEY_EVENT: with arrInputRecs[dwCur].Event.KeyEvent do
begin
cCur := AsciiChar;
if cCur = "" then
if bKeyDown then
WriteLn("Unprintable key pressed.")
else
Writeln("Unprintable key released.")
else
if bKeyDown then
WriteLn("Pressed ", cCur, " ", wRepeatCount, " times.")
else
WriteLn("Released ", cCur, " key.");
end;

{*** Delphi has renamed MOUSE_EVENT to avoid a conflict ***}
{*** with a windows function mouse_event() ***}
_MOUSE_EVENT: with arrInputRecs[dwCur].Event.MouseEvent do
begin
coorCur := dwMousePosition;
if dwEventFlags = 0 then
WriteLn("Button Pressed at ", coorCur.X, ",", coorCur.Y);
end;
end;
end;
end.



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-28231
copyr25
2002-11-16 14:59
2002.12.09
В Исландию! Поздравьте меня!


14-28205
Вадим
2002-11-16 22:43
2002.12.09
Я не сильный и не слабый, я как все :((


7-28307
Senka
2002-10-04 15:58
2002.12.09
Как выполнить учет печати на принтере в Delphi6


14-28201
leon83
2002-11-20 07:50
2002.12.09
Как писать по-русски в DOS-консоли в XP?


3-27822
Tundra
2002-11-18 14:11
2002.12.09
Как в ADO связать данные из различных баз даных