##title##

2010年8月15日

Autohotkey:DetectHiddenWindows,偵測隱藏視窗(偵測在系統列的程式)


純筆記。




寫過某個Script如下:



#+R::   ;Window+Shift+R呼叫TimeRadio並播放歌曲/縮小TimeRadio
IfWinNotExist, TimeRadio
{
Run %A_ScriptDir%\..\Tools\TimeRadioV5.3.exe
winwait, TimeRadio      ;偵測到 TimeRadio 後再繼續
IfWinNotActive, TimeRadio       ;如果 TimeRadio 不是當前視窗
WinActivate, TimeRadio  ;則將它設成當前視窗
sleep 100
Send ^{F9}      ;播放
return
}
else
{
Send ^{F12}     ;縮到最小
}
return


按第一次熱鍵會正常呼叫程式並播放,而按下第二次也會縮小。但唯獨按第三次的時候,卻會呼叫新的TimeRadioV5.3視窗,而第四次之後,此功能也沒問題...唯獨就第三次的時候會呼叫第二個視窗。

問了PTT大大,arj32大大告知了這個設定。


DetectHiddenWindows
设置脚本是否可以“看见”隐藏的窗口。
DetectHiddenWindows, On|Off 

参数
On|Off
On: 检测隐藏的窗口.
Off: 这是默认的. 除了 WinShow 命令, 其他都不会检测到隐藏窗口.

备注
在一些情况下打开 DetectHiddenWindows 可能会让脚本运行更困难, 因为有些隐藏的系统窗口可能意外地匹配上您想要操作的另一个窗口的标题或文本. 因此在大多数脚本中应该让此设置保持关闭. 然而, 当您希望直接操作隐藏窗口而不想首先使用 WinShow 显示这些窗口时, 则需要打开此设置.
WinShow 外的所有窗口命令都会受此设置的印象, 包括 WinActivate, IfWinActive, WinWait, IfWinExist. 与之相比, 即使没有检测到隐藏窗口, WinShow 也总是能让它们显示.
使用 ahk_id 方法 或作为 上次找到的窗口 访问控件或子窗口时, 可以不需要打开 DetectHiddenWindows. 使用 Gui +LastFound 访问 GUI 窗口时, 同样是不需要的.
内置变量 A_DetectHiddenWindows 包含了当前设置 (On 或 Off).
每个新运行的 线程 (例如 热键, 自定义菜单项定时 子程序) 都会以此命令的默认设置开始. 通过在脚本的自动执行段 (脚本的顶部) 使用此命令可以改变这个默认设置.

相关
DetectHiddenText

示例
DetectHiddenWindows, on

沒有留言:

張貼留言