【转载】Delphi下实现鼠标自动点击器
本文最早于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下实现鼠标自动点击器的更多相关文章
- 本元鼠标自动点击器 v1.31 官方绿色版
软件名称: 本元鼠标自动点击器软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 516KB图片预览: 软件简介:本元鼠标自动点击器是一款免费绿色版的鼠标自动点击器, ...
- Delphi下TLabel鼠标MouseEnter、MouseLeave更改颜色失灵
在Delphi 7下,如果想在鼠标MouseEnter.MouseLeave的时候改变TLabel自身的颜色,很多人可能会采用 Label.Color := clRed;这样的方式来实现,我当初也是一 ...
- Delphi下利用WinIo模拟鼠标键盘详解 有参考价值
https://blog.csdn.net/fgrass_163/article/details/6365296 Delphi下利用WinIo模拟鼠标键盘详解 2011年04月26日 21:03:00 ...
- 截图技巧——鼠标按着不懂,同时点击截图快捷键(QQ为ctrl+alt+a)即可避免按下快捷键鼠标按下等操作消失截不到的尴尬。
截图技巧--鼠标按着不懂,同时点击截图快捷键(QQ为ctrl+alt+a)即可避免按下快捷键鼠标按下等操作消失截不到的尴尬.
- Delphi 获取当前鼠标下的控件内容
Delphi 获取当前鼠标下的控件内容 主要函数: GetCursorPos://获取鼠标的位置 WindowFromPoint://获取制定point下的handle GetClassName:// ...
- DELPHI下的SOCK编程(转)
DELPHI下的SOCK编程 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认为 ...
- DELPHI下API简述(1800个API)
DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...
- Delphi下的RTTI函数大全
http://ljz9425.blog.163.com/blog/static/369148572008111635253858/ Delphi下的RTTI(下) 2008-12-16 15:52:5 ...
- DELPHI下的SOCK编程
DELPHI下的SOCK编程(转自http://www.cnblogs.com/devcjq/articles/2325600.html) 本文是写给公司新来的程序员的,算是一点培训的教材.本文不会 ...
随机推荐
- 单点登录 之 OAuth
OAuth2.0是什么 OAuth2.0是什么——豆瓣和QQ的故事 OAuth简单说就是一种授权的协议,只要授权方和被授权方遵守这个协议去写代码提供服务,那双方就是实现了OAuth模式. 举个例子,你 ...
- Oracle数据库中违反唯一约束的处理
根据NULL的定义,NULL表示的是未知,因此两个NULL比较的结果既不相等,也不不等,结果仍然是未知.根据这个定义,多个NULL值的存在应该不违反唯一约束. 实际上Oracle也是如此实现的: SQ ...
- 对JVM还一知半解
对JVM还一知半解?这篇文章让你彻底搞定JVM 摘要: 对于Java开发者来说,想把自身能力提升到更高层次,某些JVM相关知识应该是优先级很高的.比如说GC策略,JVM调优. 就我在工作中遇到的情况来 ...
- 深度学习数据集Deep Learning Datasets
Datasets These datasets can be used for benchmarking deep learning algorithms: Symbolic Music Datase ...
- C#中图片透明【转】
C#中图片透明 /// <summary> /// 处理图片透明操作 /// </summary> /// <param name="srcImage" ...
- Search for a Range leetcode java
题目: Given a sorted array of integers, find the starting and ending position of a given target value. ...
- 【Type】类型 ParameterizedType
Type 接口[重要] Type接口完整的定义: public interface java.lang.reflect.Type { /** * Returns a string describing ...
- xshell实现端口转发
跳板机:10.127.10.1 目标机:10.127.4.25:8080 目的:出于安全,本地电脑是与远程服务器是网关不通的,为了能访问远程服务器数据必须做端口转发 SSH连接与身份认证为跳板机账号密 ...
- [Javascript] Wrap an API with a Proxy
Proxies allow you to use functions that haven't yet been defined on an object. This means that you c ...
- 2.6.33中关于at91sam9260的i2c controller驱动的问题
在为at91sam9260移植2.6.33内核的I2C时,直接用driver/bus/i2c-at91.c这个iic的adapter驱动是不能用的,而且在makemenuconfig时,在device ...