Board logo

标题: [其他] 窗口闪烁工具winflash.exe [打印本页]

作者: pusofalse    时间: 2008-10-22 23:26     标题: 窗口闪烁工具winflash.exe

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





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2