作者king37937 (忆~)
看板EzHotKey
标题Re: [请问] 有可以设定滑鼠活动连点的程式吗(非自뀠…
时间Wed Feb 24 20:37:52 2010
※ 引述《meblessme (123)》之铭言:
: 有些游戏似乎设定成不能连点 但却常常得大量连点
: 希望有游戏中 能够随时在需要的时候 长按滑鼠就能连点
: 放开就能取消连点的程式或方法 不知道有没有
: 版上爬过 都是要另外设热键 不能随放随消的
: 谢谢
这种简单功能的小程式,想想还是把它做成小教学文好了
一方面整理出来自己的思考方式,一方面也让各位版友相互学习一下
这种近似写程式的东西,有两点是非常重要的
一、解决问题的思考流程 二、大量的练习
这篇改成小教学文,就是提供解决问题的思考流程的一些资讯给各位版友
-----------------------------以下正文开始-----------------------------
一、问题:希望能在按住滑鼠左键时能提供滑鼠连点的功能,并且在放开滑鼠左键时
取消自动连点的功能。
二、思考步骤:
Step 1:
因为AutoHotKey正好可以使用滑鼠左键的按下及放开来充当热键,
因此我们马上可以写出如下的程式码:
--------------------程式码区--------------------
LButton:: ;利用滑鼠左键按下充当触发热键
return
------------------程式码区结束------------------
Step 2:
因为需要连点,所以我们会需要指令Click(点击滑鼠)、Loop(反覆),
Loop与Click的组合就可以达成连点的需求。而且为了避免连点
的速度过快,通常也会加入Sleep(休息)指令来达成降低与控制滑鼠
点击速度。如此程式码就变成如下:
--------------------程式码区--------------------
LButton:: ;利用滑鼠左键按下充当触发热键
Loop
{
Click
Sleep, 300
}
return
------------------程式码区结束------------------
Step 3:
现在我们需要的是放开滑鼠左键时可以停止连点。
这可以分成两部分来思考:1、侦测滑鼠按键是否放开 2、停止连点。
关於第一点有GetKeyState(检查按键状态)指令可以使用,
至於第二点因为连点是使用Loop来完成,所以只要离开Loop就可以停止连点,
指令Break(中断)可以达成离开Loop的功能。
总结一下,我们先侦测滑鼠左键是否放开,如果没放开则继续连点,
如果放开了那就离开Loop中断连点。
这里依据滑鼠按键的状况有两种不同的流程(若是...则...,若不是...则...)
这时我们需要可以控制流程的指令If...Else...。
--------------------程式码区--------------------
LButton:: ;利用滑鼠左键按下充当触发热键
Loop
{
GetKeyState, state, LButton, P ;侦测滑鼠左键状态
If ( state = U ) ;如果滑鼠左键放开
{
Break ;中断回圈停止连点
}
Else
{
Click
Sleep, 300
}
}
return
------------------程式码区结束------------------
Step 4:
理论上这样子应该就可以完成题目需求,但是在实际运作及测试後,
发现并非想像般的工作,反覆测试以及爬文後,才知道是GetKeyState
这指令上的限制。参考板上这两篇文
#1BIATYov 及
#1BIT-TU1 之後,
改成加入一个变数来控制滑鼠的连点与否。
--------------------程式码区--------------------
clickStop := false ;新增的变数,用来表示是否连点
LButton:: ;利用滑鼠左键按下充当触发热键
Loop
{
If ( clickStop = true ) ;检查控制变数,如果要停止连点
{
clickStop := false
Break ;中断回圈停止连点
}
Else
{
Click
Sleep, 300
}
}
return
LButton Up:: ;正好AutoHotKey可以用按键放开来当热键
;只要在按键後方加上Up就可以了
clickStop := true ;更改变数,指定连点中止
return
------------------程式码区结束------------------
三、总结:
大致上的思考流程就是这样子,关於各种指令的详细格式以及用法
就只能请各位版友自己查AutoHotKey的说明档了。另外这是基本的
用滑鼠控制连点的方法,游戏中是否有效就没有测试了。
最後要说的还是请大家多看多练习了。
还有排版不好就请大家多见谅了。
※ 编辑: king37937 来自: 114.42.187.111 (02/26 00:42)
1F:→ UndeadSion:《EZsoft》板文章 #19LTcpXJ 有个简单做法提供参考 :) 02/26 01:22
2F:→ king37937:看到了,简洁有力 02/28 21:49
3F:→ tingyun60426:AHK 的说明档,有人有翻译好的吗? 03/05 14:33
4F:→ king37937:以前我有翻译计画,但自己英文也不行就放弃了 03/06 19:42
5F:→ tingyun60426:那还是多多参考别人的作品罗 03/07 10:51