WinSetTitle

更改指定窗口的标题.

WinSetTitle NewTitle , WinTitle, WinText, ExcludeTitle, ExcludeText

参数

NewTitle

类型: 字符串

窗口的新标题. 如果只给出此参数, 那么使用上次找到的窗口.

WinTitle, WinText, ExcludeTitle, ExcludeText

类型: 字符串, 整数或对象

如果这些都是空白或省略, 将使用上次找到的窗口. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示).

ExcludeTitle 和 ExcludeText 可用于根据标题或文本排除一个或多个窗口. 它们的规范类似于 WinTitle 和 WinText, 除了 ExcludeTitle 不识别除窗口标题之外的任何条件.

窗口标题和文本是区分大小写的. 默认情况下, 不检测隐藏窗口, 而检测隐藏文本元素, 除非使用 DetectHiddenWindows 和 DetectHiddenText 进行更改; 当使用纯 HWND 时, 都会检测隐藏窗口. 默认情况下, 窗口标题的任意位置包含 WinTitle 或 ExcludeTitle 就能形成匹配, 除非使用 SetTitleMatchMode 进行了更改.

错误处理

如果找不到窗口, 则抛出 TargetError.

如果无法应用更改, 则抛出 OSError.

备注

如果拥有窗口的应用程序频繁地更改标题, 那么对窗口标题的更改可能只是暂时的.

WinMove, WinGetTitle, WinGetText, ControlGetText, WinGetPos, 窗口函数

示例

更改记事本的标题. 这个例子在 Windows 11 或更高版本系统可能会失败, 因为它需要经典版本的记事本.

WinSetTitle("This is a new title", "Untitled - Notepad")

打开记事本, 等到记事本处于活动状态时, 更改标题. 这个例子在 Windows 11 或更高版本系统可能会失败, 因为它需要经典版本的记事本.

Run "notepad.exe"
WinWaitActive "Untitled - Notepad"
WinSetTitle "This is a new title" ; 使用 WinWaitActive 找到的窗口.

打开主窗口, 等待它激活并改变它的标题.

ListVars
WinWaitActive "ahk_class AutoHotkey"
WinSetTitle "This is a new title" ; 使用 WinWaitActive 找到的窗口.