本文最早于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. Oracle中索引的使用 索引性能优化调整

    索引是由Oracle维护的可选结构,为数据提供快速的访问.准确地判断在什么地方需要使用索引是困难的,使用索引有利于调节检索速度. 当建立一个索引时,必须指定用于跟踪的表名以及一个或多个表列.一旦建立了 ...

  2. eclipse 开发web程序,启动tomcat插件服务器的时候。部署目录在那里?

    不在tomcat-home/webapps/下面, 你做一个文件上传功能看看就知道了,临时目录一般是你的工作区间workspace\.metadata\.plugins\org.eclipse.wst ...

  3. unity3d-地图制作之光照贴图Lightmapping

    今天无聊随便翻看了暗黑战神的场景资源,发现了一个以前没怎么注意的静态场景优化问题. 什么是静态场景,也就是说这个场景是不会变化.比如MMO游戏中选择人物的场景. 就拿默认的暗黑战神的选择人物场景来看, ...

  4. Javascript时间以及格式化秒

    var now = new Date(); timer = $.timer(timeout, function () {     var sec_num = Math.ceil((now.getTim ...

  5. mac下使用brew安装java等应用

    可以使用brew安装很多应用,比如java,idea,iterms,sublime brew tap caskroom/versions 将会安装新的brew仓库源brew cask install ...

  6. C++ 竞赛常用头文件

    C.传统 C++ #include <assert.h> 设定插入点 #include <ctype.h> 字符处理 #include <errno.h> 定义错误 ...

  7. IIS HTTP 错误 404.17 - Not Found 解决方法

    错误提示如下图: 出现这种情况的原因通常是因为先安装了Framework,后安装的IIS: 运行cmd,输入:   C:\Windows\Microsoft.NET\Framework\V4.0.30 ...

  8. go语言之进阶篇面向对象编程

    1.面向对象编程 对于面向对象编程的支持Go 语言设计得非常简洁而优雅.因为, Go语言并没有沿袭传统面向对象编程中的诸多概念,比如继承(不支持继承,尽管匿名字段的内存布局和行为类似继承,但它并不是继 ...

  9. QlikView图表显示同比数据

    数据准备例如以下: SalesData: LOAD Num(ID) as ID, Date(Date) as Date, Month, Num(Year) as Year, Num(Sales) as ...

  10. [Node.js]22. Level 4: Dependency

    Add two dependencies to your package.json file, connect and underscore. You'll want to useconnect ve ...