Delphi 记录鼠标点击坐标


本文整理自网络,侵删。

 
unit Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, System.DateUtils;

type
  TfrmMain = class(TForm)
    Timer1: TTimer;
    Memo1: TMemo;
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    sd: TTime;
    ls: integer;
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Memo1.Lines.SaveToFile('d:\temp.txt');
end;

procedure TfrmMain.FormShow(Sender: TObject);
begin
  Memo1.Clear;
  sd := now();
  Timer1.Enabled := true;
end;

procedure TfrmMain.Timer1Timer(Sender: TObject);
var
  ks: integer;
  r: string;
  t: int64;
begin
  if GetKeyState(vk_NumLock)=1 then
  begin
    ks := GetKeyState(1);
    if ks <> ls then
    begin
      ls := ks;

      t := MilliSecondsBetween(now(), sd);
      sd := now();
      Memo1.Lines.Add('Delay ' + t.ToString + ' ms');

      if ks < 0 then
      begin
        Memo1.Lines.Add('MoveTo ' + Mouse.CursorPos.X.ToString + ' ' + Mouse.CursorPos.Y.ToString);
      end;

      if ks < 0 then
        r := 'LeftDown 1';
      if ks >= 0 then
        r := 'LeftUp 1';

      Memo1.Lines.Add(r);
    end;
  end;
end;

end.

相关阅读 >>

Delphi获得唯一id字符串

Delphi 图像分割

Delphi memo1 行倒序排列三种方法

Delphi 线程同步(线程安全)

通过崩溃地址找错误行数之Delphi

Delphi 获取鼠标坐标大全方法

Delphi android ios 获取packagename

Delphi xe10 手机内部系统相关操作(手机信息、震动、剪贴板、键盘、电话、拨号)

Delphi pchar和array [0..255] of char的区别

Delphi getprocessisadmin()判断exe是否以管理员身份启动

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...