;
;
; 开机时自动启动的AutoHotkey脚本 2019年10月09日
;
; http://www.autoahk.com/archives/16600
; https://www.cnblogs.com/delphixx/p/11965929.html
;
; 计时器创建代码段 -----------------------------------------------------------------------------------------
; SetTimer可以模拟多线程从而不影响主线程的流畅执行
; 请在SciTE4AutoHotkey中选中单词并按快捷键F12跳转到函数定义处
; 绿色免安装程序,统一都分类保存在本地磁盘D分区文件夹 D:\DIYTOOLSram 中
; 例如: MasterSeeker就长期坚持固定不变保存位置在 D:\DIYTOOLSram\MasterSeeker\MasterSeeker.exe
; 例如: FileLocator Pro就长期坚持固定不变保存位置在 D:\DIYTOOLSram\FileLocator\FileLocator.exe
; #####################################################################
;
global ProgramDir
;~ ProgramDir=%A_ScriptDir%\..\..\..
ProgramDir=D:\DIYTOOLS
SetTimer,01设置全局无窗口快捷键,-1000
; 请养成按<Win> + F 隐藏MasterSeeker窗口的习惯
SetTimer,12保持MasterSeeker窗口常驻内存,9000
SetTimer,13设置此脚本的运行参数,-1000
SetTimer,14设置此脚本用户自定义变量,-1000
SetTimer,15防止重复运行此脚本,-1000
SetTimer,16运行国税金税盘开票软件,-100
SetTimer,17运行一些软件应用程序,-1000
SetTimer,18关广告窗口删除广告文件,3000
; 设置插入当前日期和时间的热字串WT ( What is the time now )
::wt::
NowTimeString=%A_YYYY%年%A_MM%月%A_DD%日%A_Hour%时%A_Min%分
Clipboard=%NowTimeString%
Send ^v
return
return
;
; 此脚本相关信息说明段 ---------------------------------------------------------------------------------------
; 用法 把此AHK脚本文件复制到 “shell:startup”文件夹中
; shell:startup”文件夹一般位于开始菜单->所有程序->启动 文件夹
; 作者 徐晓亮 vlanweiyun618
; 电子邮箱地址 595076941@QQ.com
; 手机号码
;
; 函数子程序定义段 --------------------------------------------------------------------------------------------
;
01设置全局无窗口快捷键()
{
Hotkey,``,00打开随身U盘_办公专用盘
Hotkey,`#n,02激活或隐藏窗口EmEditor
Hotkey,`#e,03激活或隐藏窗口TotalCommander ; 按热键 Win+E 激活 TotalCommander
Hotkey,`#f,04激活或隐藏窗口MasterSeeker
Hotkey,`#g,05激活或隐藏窗口Everything
Hotkey,`!s,06激活或隐藏窗口SogouExplorer
Hotkey,`#c,07激活或隐藏窗口计算器Calc ; 按热键 Win + C,打开计算器
Hotkey,`^!E,08用SciTE4AutoHotkey编辑此脚本
Hotkey,`^!R,09重启此脚本
Hotkey,^F12,10终止此脚本执行 ;按Ctrl+Alt+F10键此脚本立即停止执行并退出
}
;
00打开随身U盘_办公专用盘()
{
随身固态U盘的盘符:=搜索随身固态U盘并设置盘符()
if (随身固态U盘的盘符<>0)
{
;~ MsgBox,%随身固态U盘的盘符%
Run,%随身固态U盘的盘符%:\01-办公文件
WinWait,01-办公文件 ahk_class CabinetWClass
loop,3
{
WinMove,01-办公文件 ahk_class CabinetWClass,,A_ScreenWidth/2,0,A_ScreenWidth/2,A_ScreenHeight-50
Sleep,100
}
}
else
ToolTip,没有找到随身U盘
}
搜索随身固态U盘并设置盘符()
{
找到U盘:=false
DriveGet,盘符清单,List
loop,Parse,盘符清单
{
DriveGet,卷标,Label,%A_LoopField%:
IfInString,卷标,随身U盘
{
找到U盘:=true
return,%A_LoopField%
}
}
if (not 找到U盘)
{
return,0
}
}
02激活或隐藏窗口EmEditor()
{
根据窗口类名激活或者隐藏窗口()
}
;
03激活或隐藏窗口TotalCommander()
{
根据窗口类名激活或者隐藏窗口("TotalCMD","TTOTAL_CMD")
}
;
04激活或隐藏窗口MasterSeeker()
{
根据窗口类名激活或者隐藏窗口("MasterSeeker","WindowsForms10.Window.8.app.0.218f99c")
;----- 全选激活MasterSeeker窗口的搜索编辑框:
loop,3
{
ControlFocus,Filename,ahk_class WindowsForms10.Window.8.app.0.218f99c
Sleep,10
ControlSend,Filename,{End},ahk_class WindowsForms10.Window.8.app.0.218f99c
}
Sleep,10
ControlSend,Filename,{ShiftDown}{Home}{ShiftUp},ahk_class WindowsForms10.Window.8.app.0.218f99c
Sleep,10
}
;
05激活或隐藏窗口Everything()
{
; 当窗口标题测试不通过的话只好用窗口类了
Process,Close,Everything.exe
根据窗口类名激活或者隐藏窗口("Everything","EVERYTHING")
}
;
06激活或隐藏窗口SogouExplorer()
{
根据窗口类名激活或者隐藏窗口("SogouExplorer","SE_SogouExplorerFrame")
}
;
07激活或隐藏窗口计算器Calc()
{
Run,calc
}
;
08用SciTE4AutoHotkey编辑此脚本()
{
IfExist,%ProgramDir%\AutoHotkey\SciTE\SciTE.exe
Run,%ProgramDir%\AutoHotkey\SciTE\SciTE.exe %A_ScriptName%
else
{
ToolTip,找不到文件%ProgramDir%\AutoHotkey\SciTE\SciTE.exe ,% A_ScreenWidth/2-150,% A_ScreenHeight/2-150
SetTimer, RemoveToolTip, 5000
Sleep,3000
}
}
;
09重启此脚本()
{
Reload
}
;
10终止此脚本执行()
{
ToolTip,%A_ScriptName% (即此脚本)已经退出
SetTimer, RemoveToolTip, 500
Sleep,500
ExitApp
}
;
12保持MasterSeeker窗口常驻内存()
{
Process,Exist,MasterSeeker.exe
if (%ErrorLevel%=0)
{
IfWinNotExist,MasterSeeker 1.5.1 by DxCK
{
IfWinNotExist,ahk_exe MasterSeeker.exe
{
IfExist,%ProgramDir%\MasterSeeker\MasterSeeker.exe
Run,%ProgramDir%\MasterSeeker\MasterSeeker.exe
WinWait,ahk_class WindowsForms10.Window.8.app.0.218f99c
loop,3
{
WinHide,ahk_class WindowsForms10.Window.8.app.0.218f99c
Sleep,100
}
}
}
}
}
;
13设置此脚本的运行参数()
{
#SingleInstance,force ;当此脚本已经运行时自动替换旧实例再次运行。
#Persistent ;让脚本持久运行(即直到用户关闭或遇到 ExitApp)。
#NoEnv ;不检查空变量是否为环境变量(建议所有新脚本使用)。
#WinActivateForce ;用强制的方法激活窗口。阻止任务栏按钮的闪烁.
;~ #NoTrayIcon ;不显示托盘图标。
;~ #Warn
SetWorkingDir,%A_ScriptDir% ;改变脚本的当前工作目录。
DetectHiddenWindows,On ;设置脚本可以“看见”隐藏的窗口。
SetTitleMatchMode,2 ;窗口标题匹配模式改成某个位置必须包含WinTitle。
SendMode,Input ;SendInput 通常更快更可靠. 缓存了发送期间任何物理的键盘或鼠标活动, 避免了在发送时夹杂用户的键击.
CoordMode,Mouse,Screen
CoordMode,Pixel,Screen
CoordMode,ToolTip,Screen
ListLines,Off
SetBatchLines,-1
SetStoreCapsLockMode, On
;~ SetBatchLines,
;~ SetKeyDelay,
;~ SetWinDelay,
;~ SetControlDelay,
}
;
14设置此脚本用户自定义变量()
{
;~ global 移动硬盘盘符 ;带冒号:
}
;
15防止重复运行此脚本()
{
#SingleInstance,force
loop,33
{
DetectHiddenWindows,On
Sleep,33
IfWinExist,QQ595076941_AutoRunAHK
ExitApp
}
Gui, Show, Hide,QQ595076941_AutoRunAHK
}
;
16运行国税金税盘开票软件()
{
SetTimer,运行开票软件,-500
SetTimer,激活登录窗口,500
SetTimer,单击登录窗口中的确定按钮,500
SetTimer,关闭上报汇总已成功提示窗口,500
SetTimer,等待主窗口出现后停止并删除所有Timer定时器,500
}
运行开票软件()
{
IfExist,D:\开票软件\MainExecute.exe
{
Process,Exist,Aisino.Framework.Startup.exe
if (%ErrorLevel%=0)
{
IfWinNotExist,SysMessageBox ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 提示
{
IfWinNotExist,增值税发票税控开票软件
Run,D:\开票软件\MainExecute.exe
}
}
}
}
激活登录窗口()
{
WinGet, WinID, ID,税控发票开票软件
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
}
单击登录窗口中的确定按钮()
{
ControlClick, WindowsForms10.BUTTON.app.0.2bb23b_r11_ad12, 税控发票开票软件 ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 增值税发票税控开票软
}
关闭上报汇总已成功提示窗口()
{
WinClose,SysMessageBox ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 提示
}
等待主窗口出现后停止并删除所有Timer定时器()
{
;等待指定标题窗口出现
IfWinExist, 增值税发票税控开票软件(金税盘版) ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 系统设置
停止并删除所有Timer定时器()
IfWinExist, 增值税发票税控开票软件(金税盘版) ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 发票管理
停止并删除所有Timer定时器()
IfWinExist, 增值税发票税控开票软件(金税盘版) ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 报税处理
停止并删除所有Timer定时器()
IfWinExist, 增值税发票税控开票软件(金税盘版) ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe, 系统维护
停止并删除所有Timer定时器()
}
停止并删除所有Timer定时器()
{
SetTimer,运行开票软件,Delete
SetTimer,激活登录窗口,Delete
SetTimer,单击登录窗口中的确定按钮,Delete
SetTimer,关闭上报汇总已成功提示窗口,Delete
SetTimer,等待主窗口出现后停止并删除所有Timer定时器,Delete
;~ MsgBox,开票软件启动成功
Run,C:\Windows\System32\Rundll32.Exe user32.dll LockWorkStation,,Hide
}
;
17运行一些软件应用程序()
{
SetTimer,定时重启向日葵远程控制保持远程访问可用,3600000
IfExistRun("WiseDesktop") ; WiseDesktop 1.3 虚拟桌面管理程序
;~ IfExistRun("Rolan")
IfExistRun("PCOff") ;定时强制关机精灵1.0 在 17:05 下班后定时强制关闭电脑
SetTimer,超时锁定桌面,30000
;~ Run,"D:\DIYTOOLS\AHKManage\AHKManage.ahk"
;~ FileCreateShortcut,http://www.weiyun.com,%A_DesktopCommon%\微云网页版.lnk
; D:\DIYTOOLS\AutoHotkey\SciTE 文件夹用于保存AHK脚本编辑器程序,此程序可用uTools搜索并运行
FileCreateDir,D:\DIYTOOLS\AutoHotkey\SciTE
; D:\DIYTOOLS\MasterSeeker 文件夹用于保存MasterSeeker程序,此程序需要微软的dotNetFx2.0运行库支持才能运行
FileCreateDir,D:\DIYTOOLS\MasterSeeker
; D:\DIYTOOLS\AutoRun 文件夹用于保存开机自动启动的AHK脚本
FileCreateDir,D:\DIYTOOLS\AutoRun
; D:\DIYTOOLS\uTools\lnks 文件夹用于保存uTools的自定义快捷方式,可用uTools缓存和搜索快捷方式,网址可以保存在批处理脚本的快捷方式中
FileCreateDir,D:\DIYTOOLS\uTools\lnks
}
;
定时重启向日葵远程控制保持远程访问可用()
{
loop,9
{
;~ WinMove
;~ WinMaximize
;~ WinHide
;~ WinClose
;~ WinKill
;~ Process,Close,
;~ WinGet, active_id, PID, A
;~ run, taskkill /PID %active_id% /F,,Hide
;~ Run, Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID]
;~ 要想得到pid, 需要把WorkingDir的参数置空,否则就得不到,真是坑爹
Sleep,500
WinClose, 桌面控制 ahk_class SDL_app ahk_exe SunloginClient.exe,
Sleep,500
WinKill, 桌面控制 ahk_class SDL_app ahk_exe SunloginClient.exe,
Sleep,500
Process,Close,SunloginClient.exe
}
loop,2
{
Sleep,3000
Run,"C:\Program Files\Oray\SunLogin\SunloginClient\SunloginClient.exe"
}
}
;
超时锁定桌面()
{
if(A_TimeIdle>50000)
{
if(A_TimeIdlePhysical>50000)
{
Run,C:\Windows\System32\Rundll32.Exe user32.dll LockWorkStation,,Hide
SendMessage, 0x112, 0xF170, 2,, Program Manager ; 关闭显示器: 0x112 为 WM_SYSCOMMAND, 0xF170 为 SC_MONITORPOWER. ; 可使用 -1 代替 2 打开显示器,1 代替 2 激活显示器的节能模式
}
}
}
18关广告窗口删除广告文件()
{
;等待指定标题窗口出现
WinHide, USB KEY PIN ahk_class #32770 ahk_exe Aisino.Framework.Startup.exe, 请输入KEY的PIN
WinClose, USB KEY PIN ahk_class #32770 ahk_exe Aisino.Framework.Startup.exe, 请输入KEY的PIN
;等待指定标题窗口出现
WinHide, ahk_class TXGuiFoundation ahk_exe QQPCTray.exe,
WinClose, Microsoft Windows ahk_class #32770, 稍后重新启动(&L)
WinClose, ahk_class TXGuiFoundation ahk_exe QQPCTray.exe,
WinClose,头条新闻
WinClose,向日葵远程控制 ahk_class SDL_app,
WinClose,今日热点 ahk_class SGNewsWindow,
WinClose,到期抄报税提示 ahk_class WindowsForms10.Window.8.app.0.2bb23b_r11_ad1 ahk_exe Aisino.Framework.Startup.exe,
; 请用 AHKInfo 1.3.5 窗口信息查询工具来获取窗口标题和窗口类名
;~ 广告弹窗专杀语句格式 WinClose,ahk_exe SohuNews.exe
;~ ;; ;; xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;~ WinClose,ahk_exe
;~ WinClose,USB KEY PIN,请输入KEY的PIN码
;~ WinClose,ahk_exe QQPCSoftTrayTips.exe
;~ WinClose,ahk_exe QQPCTray.exe
;~ WinClose,ahk_exe SohuNews.exe
;~ WinClose,ahk_exe SGTool.exe
;~ WinClose,ahk_exe PicFaceTool.exe
;~ WinClose,ahk_exe wpscEnter.exe
;~ WinClose,ahk_exe WindowsForms10.Window.20008.app.0.261f82a_r13_ad1
;~ WinClose,ahk_exe AutoShow.exe
;~ WinClose,ahk_exe skinbox.exe
;~ WinClose,ahk_exe WnComMgr.exe
;~ WinClose,ahk_exe WnMoniter.exe
;~ WinClose,ahk_exe WnHelper64.exe
;~ WinClose,ahk_exe WnUserPage.exe
;~ WinClose,ahk_class TXGuiFoundation
;~ WinClose,到期抄报税提示
;~ WinClose,USB KEY PIN,请输入KEY的PIN码
;等待指定标题窗口出现
;~ WinClose,FF新推荐 ahk_class #32770,
}
;
; 请使用 窗口信息工具 AHKInfo 1.3.5 获取窗口的类名
根据窗口类名激活或者隐藏窗口(VarExeFileName:="EmEditor",VarWinClassName:="EmEditorMainFrame3")
{
; 1、如果程序没有运行则运行程序
Process,Exist,%VarExeFileName%.exe
if (%ErrorLevel%=0)
{
IfExist,%ProgramDir%\%VarExeFileName%\%VarExeFileName%.exe
{
Run,%ProgramDir%\%VarExeFileName%\%VarExeFileName%.exe
return
}
else
{
MsgBox,找不到文件 %ProgramDir%\%VarExeFileName%\%VarExeFileName%.exe
return
}
}
; 2、如果窗口未置顶则显示并激活(切换到)指定窗口
IfWinNotActive,ahk_class %VarWinClassName%
{
loop,3
{
WinShow,ahk_class %VarWinClassName%
WinMaximize,ahk_class %VarWinClassName%
WinGet, WinID, ID,ahk_class %VarWinClassName%
DllCall("SwitchToThisWindow", "UInt", WinID, "UInt", 1)
}
return
}
; 3、如果窗口已经显示并置顶则隐藏窗口
;~ WinMinimize,ahk_class %VarWinClassName%
WinHide,ahk_class %VarWinClassName%
}
IfExistRun(TargetEXE) ;检查文件是否存在并运行程序
{
IfExist,%ProgramDir%\%TargetEXE%\%TargetEXE%.exe
Run,%ProgramDir%\%TargetEXE%\%TargetEXE%.exe
else
{
ToolTip,未找到文件%ProgramDir%\%TargetEXE%\%TargetEXE%.exe
SetTimer, RemoveToolTip, 5000
}
}
RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
return
;
; #####################################################################
;
; 此脚本到此行结束