Вниз
Скачать: CL | DM;

Стения сигнала с com-порта   Найти похожие ветки 

← →
Trap   (2005-11-05 22:28) [0]

Привет всем. Мне надо словить когда мышка начила двигатся, куда... короче сигналы (через com-порт) и что б работало все в ХП. Мыш на com-порту вторая (грубо говоря у меня задача узнать сколько метров прошла мыш).
При прослушки порта ничего не выдает (может что то криво делаю), насколько я понял мне надо посалать сигналы (какие понятия не имею), а потом уже ждать ответа.
Мож кто то подскажет как правильно это организовать.
Зарание спасибо


← →
Trap   (2005-11-05 22:29) [1]

Извиняюсь за ощибки, аж стыдно стало.


← →
Yus   (2005-11-06 15:38) [2]

Нвпрямую к СОМ порту не обратишся, т.к. он занят драйвером мыши. Нужно ставить 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;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
2-1131451140
Fast2
2005-11-08 14:59
2005.11.27
Как элементы листбокса разместить в одну строку через зяпятую?


14-1131342513
WondeRu
2005-11-07 08:48
2005.11.27
Полет в одну сторону


2-1131452979
начиннающий
2005-11-08 15:29
2005.11.27
adoconnection


14-1131458363
WondeRu
2005-11-08 16:59
2005.11.27
http://podgoretsky.com/ - куда делась вся литература?


2-1131828265
zxc
2005-11-12 23:44
2005.11.27
как рисовать на Tpanel?




   Наверх