Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fare Hareketi Yakalamak : Mouse.CursorPos.X
#8
klavyeli versiyonu

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Memo2: TMemo;
   procedure FormCreate(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure Timer1Timer(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

Type
 KeybdLLHookStruct = record
   vkCode      : cardinal;
   scanCode    : cardinal;
   flags       : cardinal;
   time        : cardinal;
   dwExtraInfo : cardinal;
 end;
 MouseLLHookStruct = record
   pt          : TPoint;
   mouseData   : cardinal;
   flags       : cardinal;
   time        : cardinal;
   dwExtraInfo : cardinal;
 end;

var
 mHook : cardinal;
 kHook : cardinal;

function LowLevelKeybdHookProc(nCode, wParam, lParam : integer) : integer; stdcall;
// possible wParam values: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, WM_SYSKEYUP
var
 info : ^KeybdLLHookStruct absolute lParam;
 lpChar : word;
 kState : TKeyboardState;
begin
result := CallNextHookEx(kHook, nCode, wParam, lParam);
with info^ do
case wParam of
 wm_keydown : begin
   GetKeyboardState(kState);
   if ToAscii(vkCode, scanCode, kState, @lpChar, 0) > 0 then Form1.Memo2.Lines.Append(format('pressed key -- %s', [char(lpChar)]));
 end;
end;
end;

function LowLevelMouseHookProc(nCode, wParam, lParam : integer) : integer; stdcall;
// possible wParam values: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_RBUTTONUP
var
 info : ^MouseLLHookStruct absolute lParam;
begin
result := CallNextHookEx(mHook, nCode, wParam, lParam);
with info^ do
case wParam of
 wm_lbuttondown : Form1.Memo1.Lines.Append(format('pressed left button (%d, %d)'    , [pt.x, pt.y]));
 wm_lbuttonup   : Form1.Memo1.Lines.Append(format('released left button (%d, %d)'   , [pt.x, pt.y]));
 wm_mbuttondown : Form1.Memo1.Lines.Append(format('pressed middle button (%d, %d)'  , [pt.x, pt.y]));
 wm_mbuttonup   : Form1.Memo1.Lines.Append(format('released middle button (%d, %d)' , [pt.x, pt.y]));
 wm_rbuttondown : Form1.Memo1.Lines.Append(format('pressed right button (%d, %d)'   , [pt.x, pt.y]));
 wm_rbuttonup   : Form1.Memo1.Lines.Append(format('released right button (%d, %d)'  , [pt.x, pt.y]));
 wm_mousewheel  : begin
   if smallInt(mouseData shr 16) > 0
   then Form1.Memo1.Lines.Append('scrolled wheel (up)')
   else Form1.Memo1.Lines.Append('scrolled wheel (down)');
 end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
const
 wh_keybd_ll = 13;
 wh_mouse_ll = 14;
 
begin
kHook := SetWindowsHookEx(wh_keybd_ll, @LowLevelKeybdHookProc, hInstance, 0);
mHook := SetWindowsHookEx(wh_mouse_ll, @LowLevelMouseHookProc, hInstance, 0);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnhookWindowsHookEx(kHook);
UnhookWindowsHookEx(mHook);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.caption:='0';
end;

end.
Cevapla


Bu Konudaki Yorumlar
Fare Hareketi Yakalamak : Mouse.CursorPos.X - Yazar: bydelphi - 19-06-2024, Saat: 16:49
Fare Hareketi Yakalamak : Mouse.CursorPos.X - Yazar: anemos - 20-06-2024, Saat: 00:46
Fare Hareketi Yakalamak : Mouse.CursorPos.X - Yazar: bydelphi - 20-06-2024, Saat: 16:51
Fare Hareketi Yakalamak : Mouse.CursorPos.X - Yazar: vedat35 - 23-06-2024, Saat: 02:23
Fare Hareketi Yakalamak : Mouse.CursorPos.X - Yazar: bydelphi - 24-06-2024, Saat: 11:17

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Mouse Orta tuşu ile Dbgrid Scroll unu hareket ettirme stevenskat 2 1.019 22-08-2023, Saat: 22:37
Son Yorum: stevenskat
  Mouse Tıklatma apachi2006 7 3.479 08-02-2022, Saat: 11:57
Son Yorum: apachi2006
  Mouse Up eventinda click sayımı kofmaster 7 3.412 08-04-2021, Saat: 00:57
Son Yorum: savasabd
  windows 10 üzerinde klavye mouse ve dokunmatiği devre dışı bırakmak suleymangul0 1 1.565 09-03-2021, Saat: 20:05
Son Yorum: Tuğrul HELVACI
  Formun tamamında geçerli mouse sağ click olayı yakalama cinarbil 4 2.507 07-11-2020, Saat: 20:34
Son Yorum: Mr.Developer



Konuyu Okuyanlar: 1 Ziyaretçi