![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Стения сигнала с com-порта [D7, WinXP]
Trap © (2005-11-05 22:28:00)Привет всем. Мне надо словить когда мышка начила двигатся, куда... короче сигналы (через com-порт) и что б работало все в ХП. Мыш на com-порту вторая (грубо говоря у меня задача узнать сколько метров прошла мыш).
При прослушки порта ничего не выдает (может что то криво делаю), насколько я понял мне надо посалать сигналы (какие понятия не имею), а потом уже ждать ответа.
Мож кто то подскажет как правильно это организовать.
Зарание спасибо
Yus (2005-11-06 15:38:00) [1]Нвпрямую к СОМ порту не обратишся, т.к. он занят драйвером мыши. Нужно ставить Hook
примерно так:
var
HookHandle: hHook;
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
var
msg: PEVENTMSG;
key: integer;
begin
if Code >= 0 then begin
result := 0;
msg := Pointer(LParam);
with Form1 do
case msg.message of
WM_MOUSEMOVE: Caption := IntToStr(msg.ParamL) + #32 + IntToStr(msg.ParamH);
WM_LBUTTONDOWN: CheckBox1.Checked := true;
WM_LBUTTONUP: CheckBox1.Checked := false;
WM_RBUTTONDOWN: CheckBox2.Checked := true;
WM_RBUTTONUP: CheckBox2.Checked := false;
WM_KEYUP: CheckBox3.Checked := false;
WM_KEYDOWN: begin
CheckBox3.Checked := true;
key := msg.paramL and 255;
if key in [48..57, 65..90]
then Edit1.Text := Edit1.Text + chr(key);
end;
end;
end else
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.FormStyle := fsStayOnTop;
CheckBox1.Enabled := false;
CheckBox1.Caption := 'left button';
CheckBox2.Enabled := false;
CheckBox2.Caption := 'right button';
CheckBox3.Enabled := false;
CheckBox3.Caption := 'keyboard';
HookHandle := SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, HInstance, 0);
Edit1.Text := '';
Edit1.Enabled := false;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if HookHandle > 0 then
UnhookWindowsHookEx(HookHandle);
end;
Trap (2005-11-05 22:29:00) [2]Извиняюсь за ощибки, аж стыдно стало.