分享一个超简单的【鼠标连点】工具(增多点点击+后台点击)
导读
楼主这个自己造的迷你小工就娆迎来核心功能的最终一版,前后弄了一周,终于搞得差不多了,没看过的参见楼主前面的两个帖子。把黑马骝的主题互动去了,回归纯简风。
最终版新加入【多点点击】和【后台点击】的功能,点击方面基本就这样了。UI上有所调整和完善,图标换了。以后应该不会加啥核心功能了,初衷是弄个极简风的小软件,现在加了调速、计时、多点和后台点击等功能,都是之前吧友问的,其实我自己用的功能就只有最初的那个简单连续点击。
特点:
1、核心:鼠标单点无限连续点击。
2、加入多点点击(用快捷键获取要点的地方的坐标,支持N个点,上限未知);
3、加入后台点击,无论软件是被其它软件挡住,还是最小化,还是关闭了主界面,都可以进行点击。但并非所有软件都支持,你要后台点击哪个软件,得先试。
4、调速功能,楼主限定到0至10秒范围,再慢感觉也没啥必要啊。
5、倒计时功能,楼主限定在10万秒以内。调速和倒计时均比上版改换了方式,现在可以手动输入了。不过上一版有的倒计时小BUG(不影响使用)还在,以后有空再琢磨。特别提一点:调速功能用点击上下箭头增减的方式时,是以0.1秒为单位计的;但手动输入时,必须输入毫秒级的数字。比如增加0.1秒,就得输入100,以此类推,以后再考虑调整。
6、加入了一个配置文件,用来保存运行状态,以便下次启动时减少重新调节的功夫。初始没有配置文件的,运行并关闭过一次后会自动生成。所以现在工具一共是两个文件了。配置文件随便删,不影响工具的运行。同时,配置文件没有保存“后台点击”开启关闭(实现起来很简单,不过考虑到后台点击的局限性,楼主故意选择了默认关闭,每回启动软件都要手动打开才行),同时以前点击过的坐标也都不会保存
7、用鼠标指向工具界面上不同的区域,会显示软件相应的使用说明,使用前请务必尝试着全部看一遍。
8、体积小,一共1.5MB,内存占用我这测试大竿8MB左右,平常待机几乎不占CPU资源。因为楼主手边现在只有两台电脑,就没法再伏更多测试了。
9、所有功能就在主界面上,一目了然,没有任何子窗口。主要因为楼主本来就想做的是极简的。
10、新增:双击快捷键可更换,范围是从F1~F12之间变化。
目前已知但不影响使用的BUG:
1、定时器提前中止时,它会固执地一直倒计时到结束(但点击会在你按下停止锓的那一刻就停下来)。如果没结束就再次开启倒计时点击,倒计时的速度会变快。(追加:已解决。)
2、界面是在WIN7下调试的,本来调得好好的,但到WIN11下时发现对齐、字体、大小等都有一定的差异。好在它有一定的自我调节能力,没完全变形,将就将就。(追加:已解决,界面拉扯变异的历史终于过去了,哈哈!)
3、之前还记得有一个BUG,现在给忘了,反正不是啥影响运行的大问题。其它的等有兴趣时玩弄过的福娃有空闲时反馈吧,楼主一直用的是最简单的部分,也没试出啥BUG来。(追加:想起来了,程序启动后CPU占用突然到了10%30%,WIN11下启动点击之后恢复正常,WIN7下始终占用。不过已经解决,现在应该是基本0占用CPU资源。)
分享地址:阿里云盘分享 (alipan.com)
老规矩,下没有任何版本说明的那个,那就是目前的最新版。欢迎有闲空或者需求的福娃前来玩弄。
度盘也来个链接:链接:https://pan.baidu.com/s/1rKNpwmorcBI875dxTJ3mtg
提取码:fuli
再补个国外的网盘地址吧,可以直接点击下载:Filen
以下吹逼时刻,闲得无聊时可以看看,不看也不影响主题,大致讲了讲后台点击这个事。
单点点击时,鼠标可以移动,但始终点击的是鼠标所在的位置;
多点点击时,因为设定了位置,所以鼠标是被锁定的,点击期间基本无法移动;
后台点击时,因为是使用句柄和相对坐标及模拟点击,所以鼠标又可以随便移动,且不影响点击,你完全可以让它在那点点点,自己弄自己的。
看起来是不是后台点击最爽?但不幸的是,抛开原理所造成的可能后果先不谈,后台点击并不是所有软件都支持。
举几个例子,楼主自己实验过的,Potplayer和酷我音乐等支持,WIN7下的记事本、计算器等也支持,但是楼主玩的一款放置类网游不支持,WIN11下的记事本的菜单、计算器的整个页面等都不支持,但记事本的编辑框里面又支持,虽然没啥用。
楼主这几天一致在学习这个东西,算是大致有点明白了(粗略的,我也不是专业人员),大概说说。
要后台点击,首先要取得想点击的目标的“句柄”,所以如何“取得”就是首要的问题。
句柄,是由系统分配的,每一个软件在启动时,都会得到分配的句柄。然而,分配的句柄并不只是给“软件”而已,还要给软件内部各种控件分配。
比如说,系统自带的计算器,小软件一个,运行时,软件本身要得到一个句柄,然后它显示数字的框又要得到一个,下面每一个按钮,又各自要一个,甚至菜单也要分一个,诸如此类。
而你要点击按钮,只获得软件的句柄是没用的,必须获得每一个按钮的句柄才行。
好在系统提供了一些函数能够办到这事。不过,系统自己提供的函数的办事能力有限。
比如楼主用过win.getfocus()来实现,以计算器为例,它只能获得计算器这个软件的句柄,无法获得上面的按键比如“1”的句柄。因此你无法让它进行后台点击。
打个比方,你听说有城市的私人小餐馆很多,从国内到欧美的餐馆都有,价格也不贵,选择性可高了。然而,那城市太大,你要是没人指点,找餐馆能把你找死,所以就需要高人提点一下具体小餐馆们在城里哪个区域,甚至哪个楼和哪些楼层。城市名就相当于软件的句柄,你光知道个城市名有啥用?而控件的句柄就像是高人指点的小餐馆具体地址,有了这地址你才能去大快朵颐。当然句柄没有街道与门牌号的从属关系,只是类似的一个道理。
而且难点还不只这一点。
有时候,你拿到了地址,结果过去一看,人家是开美容店的,不是开餐馆的。你悻悻而离,后来抱怨高人,高人说你傻啊,美容店只是个掩饰,你得穿过美容店,才能看到你想去的私人小餐馆,见到美丽动人的老板娘,尝到美味的各方佳肴。
软件也是这样,程序界面的各个控件很多时候是重叠的,有些控件是隐形控件。咱们看到一个按键0,其实它上层可能还覆盖了其它的透明控件,导致函数指向它时,获得的是其它东西的句柄。没办法,函数瞎啊……我都看到那个0了,它硬是看不见……
幸好,楼主用的编程软件提供了扩展的库函数,提供穿透获取能力,能够直接获取目标组件的句柄,一定程度上解决了第一步。
关键的点是——现在的软件很多改变了做法,甚至有时候是系统改变了过去的做法,使得外界软件对控件句柄的获得变得越发艰难起来。
这一点不只是楼主这里,目前国内网上能后台点击的软件,也都是没一个能做到所有软件支持。就连大名鼎鼎的按键精灵,也会声明能不能用得看目标软件的实际情况,看来这个事的技术难度还是比较高的。
楼主嘛,技术能力当然更是远逊这些大拿,所以实现效果目前这就是极限了。不排除未来找到更好的方式再修改的可能性,不过暂时预定还是细节小调整。
一不小心扯多了,就这么着吧,就当对这几天研究这个事的一点记录。
艾特几位之前的吧友。
@esc2000 ,@pan ,二位之前问的多点位,试试我这个新加的,我感觉挺不错的,哈哈。
@23232233 ,研究了一段时间的后台点击,如上面所述,你可以试试,或许能用。但也如上面所述,这个事没那么简单,光靠窗口句柄不够,后台点击用的是模拟点击,属于开挂范围了(单纯的无限点击反而是最安全的,因为它是用的真实点击,你鼠标必须指着要点的位置),现在技术比以前发达,很多游戏啥的在这方面有意做了很好的防范,能用就算是福,不能用的话也只好说声抱歉哈。
