学了一点Au3,今晚上无聊之时用它写了一个小工具,可以对指定窗口进行窗口闪烁操作。好比QQ聊天,来信息时最小化的窗口会闪烁一样。
用法相当简单,winflash.exe <窗口标题> <闪烁次数> <闪烁延时>。
更多信息,CMD中键入不带参数的winflash.exe或双击winflash.exe。
可惜现在水平太菜,没有对输入的参数进行过多的判断,所以三个参数缺一不可。
欢迎大家测试并指出其中问题,不胜感谢!
测试代码:- @echo off
- cd.>TEST.X
- start /min TEST.X
- WinFlash.exe TEST.X 5 400
- :: 以上,TEST.X将闪烁5次,延时为400毫秒。
- WinFlash.exe 批处理之家 3 400
- WinFlash.exe $ 4 500
- ::以上这条命令是对当前被激活的CMD窗口进行操作,$代表当前被激活的窗口。
- pause
复制代码 10月31日修改,修改部分代码,使之能在命令行中运行,并对错误参数进行了判断。- Usage: winflash.exe <Wintitle|$> [Flashes] [Delay]
- Wintitle|$ 窗口标题, 可使用部分标题代替通配符, 必须指定此参数.
- $为当前被激活的窗口.
- Flashes 可选参数, 闪烁次数, 默认为4次.
- Delay 可选参数, 闪烁延时, 默认为500ms.
- Exit Code: 0:成功 1:未找到指定窗口 2:参数错误
复制代码
- #AutoIt3Wrapper_Change2CUI=y
- Dim $HelpInfo
- $HelpInfo &= @CRLF
- $HelpInfo &= " Usage: " & @ScriptName & " <Wintitle|$> [Flashes] [Delay]" & @CRLF & @CRLF
- $HelpInfo &= " Wintitle|$ 窗口标题, 可使用部分标题代替通配符, 必须指定此参数." & @CRLF
- $HelpInfo &= " $为当前被激活的窗口." & @CRLF
- $HelpInfo &= " Flashes 可选参数, 闪烁次数, 默认为4次." & @CRLF
- $HelpInfo &= " Delay 可选参数, 闪烁延时, 默认为500ms." & @CRLF & @CRLF
- $HelpInfo &= " Exit Code: 0:成功 1:未找到指定窗口 2:参数错误" & @CRLF
- If $CmdLine[0] = 0 Then
- ConsoleWrite ($HelpInfo)
- Exit(0)
- EndIf
- If $CmdLine[0] = 1 Then
- $Flashes = 4
- $Delay = 500
- ElseIf $CmdLine[0] <> 3 Then
- ConsoleWrite ($CmdLineRaw & " : Bad command line." & @CRLF)
- Exit(2)
- Else
- For $i = 2 to 3
- $errorcode = StringRegExp ($CmdLine[$i], "[^0-9]", 0)
- If $errorcode = 1 Then
- ConsoleWrite ($CmdLineRaw & " : Bad command line." & @CRLF)
- Exit(2)
- Else
- If $i = 2 Then
- $Flashes = $CmdLine[$i]
- Else
- $Delay = $CmdLine[$i]
- EndIf
- EndIf
- Next
- EndIf
- If $CmdLine[1] <> "$" Then
- If WinExists ($CmdLine[1]) Then
- WinFlash ($CmdLine[1], "", $Flashes, $Delay)
- Exit(0)
- Else
- ConsoleWrite ("Not found the specified window." & @CRLF)
- Exit(1)
- EndIf
- Else
- WinFlash ($CmdLine, "", $Flashes, $Delay)
- Exit(0)
- EndIf
复制代码
|