本文最早于2009年6月1日在编程论坛(programbbs.com)上发表,页面地址:http://programbbs.com/bbs/view12-20849-1.htm 。

  众所周知,当鼠标指针移动到一些对象上时,指针的图片就会发生变化,以显示对象的相关属性。我设计了这么一个程序:它可以从屏幕上的某一点开始以方形螺旋线的方式从中心向四周移动,当指针图片变为指定的图片时就自动单击鼠标左键。本程序还兼有截取鼠标指针图片的功能。程序的外观如下:

图1

图2

  鼠标指针将按图2所示的样子从中心向四周移动。图中的黑点表示指针停留的点,由于指针图片的变化需要时间,所以指针要停留一段的时间后才可以进行截图。如图1所示:程序中“开始位置”是指图2中的中心点,可以是屏幕上的任意一点。“移动步长”是指图2中黑点与黑点之间的距离,必需大于等于1。屏幕上的对象一般都不会很小,只要指针与对象有重叠,指针的图片就会发生变化。所以可以适当的调节“移动步长”来提高搜索速度。“搜索半径”是指从中心到边缘的距离,可以适当的调整避免搜索整个屏幕。“停留时间”就是前面说到的指针在黑点上的停留时间。“操作按键”是指开始或停止搜索的按键,这是一个虚键码值,可以用VK开头的常量也可以用$开头的十六进制的数值。按下放开指定的键开始操作,再按下放开相同的键停止操作。“背景颜色”时指当前导入的指针图片的背景颜色,可以不使用。

  项目文件中的MKHook.dll文件是一个按键钩子程序,用以监视用户指定的操作按键。该文件原名Project1.dll,关于该文件的更多信息请参考文章:《一个简单的按键钩子程序》。本程序使用BitmapData.pas文件中的对象来截取鼠标指针图片和比对图片,更多信息请参考文章:《Delphi下实现全屏快速找图找色》。本程序使用SIMouseKeyboard.pas文件中的函数来模拟鼠标操作,更多信息请参考文章:《Delphi下利用SendInput模拟鼠标键盘》和《Delphi下利用WinIo模拟鼠标键盘详解》。

  项目文件下载(点这里

【转载】Delphi下实现鼠标自动点击器的更多相关文章

  1. 本元鼠标自动点击器 v1.31 官方绿色版

    软件名称: 本元鼠标自动点击器软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 516KB图片预览: 软件简介:本元鼠标自动点击器是一款免费绿色版的鼠标自动点击器, ...

  2. Delphi下TLabel鼠标MouseEnter、MouseLeave更改颜色失灵

    在Delphi 7下,如果想在鼠标MouseEnter.MouseLeave的时候改变TLabel自身的颜色,很多人可能会采用 Label.Color := clRed;这样的方式来实现,我当初也是一 ...

  3. Delphi下利用WinIo模拟鼠标键盘详解 有参考价值

    https://blog.csdn.net/fgrass_163/article/details/6365296 Delphi下利用WinIo模拟鼠标键盘详解 2011年04月26日 21:03:00 ...

  4. 截图技巧——鼠标按着不懂,同时点击截图快捷键(QQ为ctrl+alt+a)即可避免按下快捷键鼠标按下等操作消失截不到的尴尬。

    截图技巧--鼠标按着不懂,同时点击截图快捷键(QQ为ctrl+alt+a)即可避免按下快捷键鼠标按下等操作消失截不到的尴尬.

  5. Delphi 获取当前鼠标下的控件内容

    Delphi 获取当前鼠标下的控件内容 主要函数: GetCursorPos://获取鼠标的位置 WindowFromPoint://获取制定point下的handle GetClassName:// ...

  6. DELPHI下的SOCK编程(转)

    DELPHI下的SOCK编程      本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为 ...

  7. DELPHI下API简述(1800个API)

    DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...

  8. Delphi下的RTTI函数大全

    http://ljz9425.blog.163.com/blog/static/369148572008111635253858/ Delphi下的RTTI(下) 2008-12-16 15:52:5 ...

  9. DELPHI下的SOCK编程

     DELPHI下的SOCK编程(转自http://www.cnblogs.com/devcjq/articles/2325600.html) 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会 ...

随机推荐

  1. [翻译] 5点建议,让iOS程序跑得更快

      [文章原地址]http://mobile.tutsplus.com/tutorials/iphone/ios-quick-tip-5-tips-to-increase-app-performanc ...

  2. Python for everyone chapter 1

    Chapter 1 10 试题 1.  When Python is running in the interactive mode and displaying the chevron prompt ...

  3. 从volatile说到i++的线程安全问题

    简介 volatile关键字保证了在多线程环境下,被修饰的变量在别修改后会马上同步到主存,这样该线程对这个变量的修改就是对所有其他线程可见的,其他线程能够马上读到这个修改后值. Thread的本地内存 ...

  4. Tomcat发布Maven项目遇到异常:java.lang.OutOfMemoryError: PermGen space

    前言: 本问题出现在tomcat 7发布 web3.0Maven项目的时候出现. 问题阐述: 异常:java.lang.OutOfMemoryError:PermGen space 解决如下: 1.  ...

  5. 依赖注入 DI 控制反转 IOC MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. PHP PSR基本代码规范(中文版)

    PSR-1 基本代码规范 本篇规范制定了代码基本元素的相关标准,以确保共享的PHP代码间具有较高程度的技术互通性. 关键词 “必须”("MUST").“一定不可/一定不能”(&qu ...

  7. WPF Converter 使用复杂参数的方法

    Step 1在WPF的C#代码文件中给定义复杂类型的变量,并给其赋值:Sample code: List<User>lsUser=....Setp 2在 C#代码对应的XAML 中将此复杂 ...

  8. 实战:INNOBACKUPEX for mysql 5.6自己主动还原脚本-v2

    脚本再次更新,共享一下! #!/bin/sh # # 用法: # ./restore.sh /你备份文件的全路径 #ocpyang@126.com INNOBACKUPEX=innobackupex ...

  9. netdata的安装与使用

    具体的netdata介绍请参照GIT:https://github.com/firehol/netdata/wiki 以下只介绍centos下的netdata的安装与使用: 1.安装Netdata需要 ...

  10. WPF 下载网络文件 带进度条

      附件:http://files.cnblogs.com/xe2011/WpfApplication3_downloadFile.rar 使用         private void Button ...