zoukankan      html  css  js  c++  java
  • delphi向另一程序窗口某处发送鼠标事件所用的工具

    unit Unit2;

    interface

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

    type
      TForm2 = class(TForm)
        Timer1: TTimer;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        Label6: TLabel;
        Label7: TLabel;
        Label8: TLabel;
        Label9: TLabel;
        Label10: TLabel;
        Label11: TLabel;
        Label12: TLabel;
        procedure Timer1Timer(Sender: TObject);

      private
        { Private declarations }
      public
        { Public declarations }
        selectr:trect;          //注意这里定义为保存选定窗体的左上角
      end;

    var
      Form2: TForm2;

    implementation

    {$R *.dfm}


    procedure TForm2.Timer1Timer(Sender: TObject);

    var
      p: TPoint;
      h: HWND;
      r:trect;
    begin
      GetCursorPos(p);
      label6.Caption:=format('x: %d, y: %d',[p.x,p.y]);  //鼠标在屏幕绝对位置
      h := WindowFromPoint(p);
      GetWindowRect(h,r);//得到窗口的左上角坐标

       if GetAsyncKeyState(VK_LButton)<>0 then  //按下鼠标左键,记下所选的窗体左上角
       begin
        selectr:=r;
        label11.Caption:=format('x: %d, y: %d',[r.left,r.top]);
       end;

      label4.Caption:=format('x: %d, y: %d',[r.left,r.top]); //当前鼠标位置窗体的左上角
      label8.Caption:=format('x: %d, y: %d',[p.x-selectr.left,p.y-selectr.top]);
      //label8内为发送鼠标事件所用数据
      Windows.ScreenToClient(h, p);
      label1.Caption:=format('x: %d, y: %d',[p.X,p.y]);//鼠标在窗口里的相对位置坐标

    end;

    end.

    http://cy03wqh.blog.163.com/blog/static/3678030220108592514544/

  • 相关阅读:
    添加活动记录的小坑
    用windows的批处理文件批量更改文件后缀
    js日期的初始化的格式
    对象的继承
    关于换行字符的问题
    js获取dom对象style样式的值
    判断邮箱是否合法
    Python控制函数运行时间
    如何用python编写一个计时器的程序
    TF-IDF算法介绍及实现
  • 原文地址:https://www.cnblogs.com/sunsoft/p/1967563.html
Copyright © 2011-2022 走看看