开机启动常用程序——Autoit简单脚本[03]

有没有一些程序经常在启动系统的时候要你手动启动,但又不想加入自动启动?
有没有做系统维护频繁重启的时候觉得自动启动的程序很烦?
我们可以编一个小程序,实现一键启动你的常用程序

放源码

然后新建一个runauto.ini和脚本放一个目录

嗯,然后是脚本代码的解释

HotKeySet("{NUMPADDIV}", "capturediv")
这个是定义热键为小键盘的“/”键

Func capturediv()
$v12= IniReadSection(@ScriptDir & ".\runauto.ini", "Numpad /")
$days = StringSplit($v12[1][1], "\")
$wor = StringReplace ($v12[1][1],$days[$days[0]],"",0,0)
ShellExecute ($v12[1][1],$v12[2][1],$wor)
EndFunc

这是按了热键后的发生事件
$v12就是从runauto.ini中读取[Numpad /]第一行的内容
这里是“D:\QQQ\133728\FinePlus.exe”
$days是把$v12分割,以符号“\”分割,
就是把字段分为“d:\”“qqq\”“133728\”“FinePlus.exe”
$days[0]就是分割好的总数,$days[$days[0]]就是分割后最后的字段
就是“FinePlus.exe”
$wor就是把最后的字段替换为无,也就是删除“FinePlus.exe”
则$wor为“D:\QQQ\133728\”

最后用ShellExecute ($v12[1][1],$v12[2][1],$wor)启动程序
$v12[1][1],就是qq的程序了
$v12[2][1],就是[Numpad /]第二行的内容,就是程序参数,这里是qq的登录参数
这么麻烦要搞个$wor就是工作目录,没有工作目录有些程序会不正常启动,比如说joytokey,会在定义的工作路径寻找配置文件,没有工作目录就会找不到配置文件
这里应该是可以用一个func来调用处理的……我一直懒得修改,大家将就

定义好几个键,我们就可以在进入系统后通过小键盘启动我们有时需要有时不需要的程序了
但小键盘我们也是经常要用的,所以我们启动后可以让这个程序自动退出
所以我们加上退出的代码
$pos = MouseGetPos()
While 1;得到鼠标位置确认值守
Sleep (3000)
$pos2 = MouseGetPos()
If $pos[0]=$pos2[0] And $pos[1] =$pos2[1] Then
ContinueLoop
Else
sleep (43000)
EndIf
Exit
WEnd

只要两次鼠标取点不相同(鼠标有移动过),程序在43秒“sleep(43000)”后就会自动退出

最后是这个小代码,对应ini文件中的[Autorun]段
$rua = IniReadSection(@ScriptDir & ".\runauto.ini", "Autorun")
If @error Then
Else
For $i = 1 To $rua[0][0]
$rua1 = StringSplit($rua[$i][1], "\")
$rua2 = StringReplace ($rua[$i][1],$rua1[$rua1[0]],"",0,0)
ShellExecute ($rua[$i][1],$rua[$i][0],$rua2)
Next
EndIf

在这个字段的所有程序,会自动启动
有时我在家于是我需要用到rasdial.exe程序帮我自动拨号
有时我在学校,需要一开机就启动一个简单的锁屏程序ScrnLck.exe
如果不需要哪个程序,只要在该行前面加上“;”号,就可以停止该程序自动启动,很方便

该字段的“=”前面对应程序启动参数,因为一般都是些小程序,所以不写太复杂了
经过长期测试,无bug,很方便
最后把这个程序设为自动启动就可以了

《开机启动常用程序——Autoit简单脚本[03]》上有2条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据