好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 laozhhaiJohn 于 2021-3-14 12:34 编辑
用AutoHotKey自动登录Total Commander未注册版
网上流传老脚本的更新
一、软件说明:
AutoHotKey是一个类似于按键精灵的但更强大的自动化编程软件,姑且简称ahk吧。国外同类同源的还有AutoIt。
Total Commander是一个老牌资源管理器类软件,简称TC。
TC未注册版本启动后提示页面需要未注册用户根据提示随机点击1、2、3按钮中的一个。
现在想使用ahk自动登录未注册版tc。
二、学习查找:
查阅网络上有关利用ahk自动登录tc的文章,这里以这篇为例:
将其代码复制粘贴到文本文件,并将文本文件改名为.ahk后,运行,结果弹出注册说明,没有达到自动登录tc的目的。
三、试验调试:
1、仔细检查其代码,发现问题是该文章及其引用的文章等流传年代较久远,同时没有使用ahk官方推荐的语法和命令。因此,有必要对其改造。
笔者也是初学者,下面若有谬误,请大佬和同好不要耻笑。
该网页的源代码如下:
[C++] 纯文本查看 复制代码 Run tc
WinWait, ahk_class TNASTYNAGSCREEN
WinGetText, Content, ahk_class TNASTYNAGSCREEN
StringMid, Num, Content, 10, 1
ControlSend,, %Num%, ahk_class TNASTYNAGSCREEN
return
2、为了了解ahk命令和命令执行效果(也就是所谓调试过程吧),我改写该程序如下:
#z:: ;指定运行热键为 win + z
Run, d:\Program Files\TotalCmd\TOTALCMD64.EXE ;运行tC程序
WinWait, ahk_class TNASTYNAGSCREEN ;等待未注册提示窗口
sleep 800 ;稍等一下
WinGetText, 文本内容, ahk_class TNASTYNAGSCREEN ;获取该窗口的文本信息
msgbox,%文本内容%
得到随机数 := SubStr(文本内容, 1, 1) ;获取文本内容从第一个字符开始的1个字符
得到随机数2 := SubStr(文本内容, 1, 2) ;获取文本内容从第一个字符开始的2个字符
得到随机数3 := SubStr(文本内容, 1, 3)
得到随机数4 := SubStr(文本内容, 1, 4)
得到随机数5 := SubStr(文本内容, 1, 5)
msgbox,%得到随机数% ;提示框显示该值
msgbox,%得到随机数2%
msgbox,%得到随机数3%
msgbox,%得到随机数4%
msgbox,%得到随机数5%
;ControlSend,, %Num%, ahk_class TNASTYNAGSCREEN
ControlSend,, %得到随机数%, ahk_class TNASTYNAGSCREEN ;向注册框发送该值
return
其中关键的地方是将官方不推荐使用的StringMid命令替换为SubStr命令。
同时,为了验证该命令结果,增加了“得到随机数”及其他几个截取值,并通过msgbox文本提示框
显示出这几个值。
经验证:源程序中: StringMid, Num, Content, 10, 1 这一语句失效。
改用: 得到随机数 := SubStr(文本内容, 1, 1) 该程序段运行完美!!
最终完美运行代码如下:
#z:: ;指定运行热键为 win + z
Run, d:\Program Files\TotalCmd\TOTALCMD64.EXE ;运行tC程序,请自行根据自己tc安装目录修改
WinWait, ahk_class TNASTYNAGSCREEN ;等待未注册提示窗口
sleep 800 ;稍等一下
WinGetText, 文本内容, ahk_class TNASTYNAGSCREEN ;获取该窗口的文本信息
得到随机数 := SubStr(文本内容, 1, 1) ;获取文本内容从第一个字符开始的1个字符
ControlSend,, %得到随机数%, ahk_class TNASTYNAGSCREEN ;向注册框发送该值
Return
|
免费评分
-
查看全部评分
|