计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

利用热键控制鼠标移动的一个程序

2016-10-02 01:28
导读:计算机应用论文论文,利用热键控制鼠标移动的一个程序在线阅读,教你怎么写,格式什么样,科教论文网提供各种参考范例:本程序可以使用热键来将鼠标移动到某一个指定的坐标。是一个定义热键的示例
本程序可以使用热键来将鼠标移动到某一个指定的坐标。是一个定义热键的示例程序。 本程序的热键为小键盘的5,在编辑框内可以指定坐标。   unit MainUnit; interface uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Mask; type
  TForm1 = class(TForm)
    btnSetHK: TButton;
    btnExit: TButton;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    btnUnsetHK: TButton;
    edYPos: TMaskEdit;
    edXPos: TMaskEdit;
    Memo: TMemo;
    procedure btnExitClick(Sender: TObject);
    procedure btnSetHKClick(Sender: TObject);
    procedure btnUnsetHKClick(Sender: TObject);
    procedure OnHotKey(var Message: TWMHOTKEY); message WM_HOTKEY;
    procedure FormDestroy(Sender: TObject);
  public
    { Public declarations }
  end; var
  Form1: TForm1; const
  idHotKey : WORD = 0; implementation {$R *.DFM} procedure TForm1.btnExitClick(Sender: TObject);
begin
 
  Close;
end; procedure TForm1.btnSetHKClick(Sender: TObject);
begin
  if idHotKey<>0 then Exit;
  idHotKey := GlobalAddAtom('EmuMouse'); //给热键取得一个唯一的标识
  RegisterHotKey(Handle, idHotKey, 0, VK_NUMPAD5); //注册热键
end; procedure TForm1.OnHotKey(var Message: TWMHOTKEY);
var
  Point: TPoint;
  X, Y: Word;
begin
  GetCursorPos(Point); //取回当前坐标   try
    X := StrToInt(edXPos.Text);
    Y := StrToInt(edYPos.Text);
  except
    ShowMessage('坐标输入不正确.');
(科教作文网 zw.nseac.com整理)

    Exit;
  end;   try
    Mouse_Event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTDOWN, Point.X, Point.Y, 0, GetMessageExtraInfo);     SetCursorPos(X, Y);     Mouse_Event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTUP, X, Y, 0, GetMessageExtraInfo);   except
    ShowMessage('Error');   end;
end; procedure TForm1.btnUnsetHKClick(Sender: TObject);
begin
  if idHotKey = 0 then Exit;
  UnRegisterHotKey(Handle, idHotKey); //注销热键
  DeleteAtom(idHotKey); //注销标识
  idHotKey := 0;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  btnUnsetHK.Click;
end; end.  
--------------------------------------------------------------------------------
这是dfm文件 object Form1: TForm1
  Left = 296
  Top = 238
  AutoSize = True
  BorderStyle = bsDialog
  BorderWidth = 8
  Caption = '模拟鼠标拖动'
  ClientHeight = 265
  ClientWidth = 211
  Color = clBtnFace
  Font.Charset = GB2312_CHARSET
  Font.Color = clWindowText
  Font.Height = -12
  Font.Name = '新宋体'
  Font.Style = []
  OldCreateOrder = False
  OnDestroy = FormDestroy
  PixelsPerInch = 96
  TextHeight = 12
  object btnSetHK: TButton
    Left = 136
    Top = 8
    Width = 75
    Height = 25
    Caption = '设置热键(&H)'
    TabOrder = 0
    OnClick = btnSetHKClick
  end
  object btnExit: TButton
    Left = 136
    Top = 72
    Width = 75
    Height = 25
    Caption = '退出(&X)' (科教论文网 lw.nSeAc.com编辑发布)
    TabOrder = 2
    OnClick = btnExitClick
  end
  object GroupBox2: TGroupBox
    Left = 0
    Top = 0
    Width = 129
    Height = 97
    Caption = '目的坐标'
    TabOrder = 3
    object Label3: TLabel
      Left = 16
      Top = 29
      Width = 6
      Height = 12
      Caption = 'X'
    end
    object Label4: TLabel
      Left = 16
      Top = 61
      Width = 6
      Height = 12
      Caption = 'Y'
    end

    object edXPos: TMaskEdit
      Left = 32
      Top = 24
      Width = 73
      Height = 20
      EditMask = '0000;1;_'
      MaxLength = 4
      TabOrder = 0
      Text = '0000'
    end
    object edYPos: TMaskEdit
      Left = 32
      Top = 56
      Width = 73
      Height = 20
      EditMask = '0000;1;_'
      MaxLength = 4
      TabOrder = 1
      Text = '0000'
    end
  end
  object btnUnsetHK: TButton
    Left = 136
    Top = 40 (科教作文网http://zw.NSEaC.com编辑发布)
    Width = 75
    Height = 25
    Caption = '取消热键(&U)'
    TabOrder = 1
    OnClick = btnUnsetHKClick
  end
  object Memo: TMemo
    Left = 0
    Top = 104
    Width = 209
    Height = 161
    TabOrder = 4
  end
end

    上一篇:SCSI冗余路径软件的研究与实现 下一篇:没有了