WinSetStyle / WinSetExStyle

分别改变指定窗口的样式和扩展样式.

WinSetStyle Value , WinTitle, WinText, ExcludeTitle, ExcludeText
WinSetExStyle Value , WinTitle, WinText, ExcludeTitle, ExcludeText

参数

Value

类型: 整数字符串

传递一个正整数来完全覆盖窗口的样式; 也就是说, 设置它的值为 Value.

要添加, 删除或切换样式, 请分别传递一个以加号(+), 减号(-) 或插入符号(^) 前缀的数字字符串. 新样式值的计算如下所示(其中 CurrentStyle 可以通过 WinGetStyleWinGetExStyle 检索):

操作 前缀 示例 公式
添加 + "+0x80" NewStyle := CurrentStyle | Value
删除 - "-0x80" NewStyle := CurrentStyle & ~Value
切换 ^ "^0x80" NewStyle := CurrentStyle ^ Value

如果 Value 是一个负整数, 它将被视为与对应的数字字符串相同.

要在表达式中原义使用 + 或 ^ 前缀, 前缀或值必须用引号括起来. 例如: WinSetStyle("+0x80")WinSetStyle("^" StylesToToggle). 这是因为表达式 +123 产生 123(没有前缀), 而 ^123 是一个语法错误.

WinTitle, WinText, ExcludeTitle, ExcludeText

类型: 字符串, 整数对象

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

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

窗口标题和文本是区分大小写的. 默认情况下, 不检测隐藏窗口, 而检测隐藏文本元素, 除非使用 DetectHiddenWindowsDetectHiddenText 进行更改. 默认情况下, 窗口标题必须以指定的 WinTitleExcludeTitle 开头才能匹配, 除非使用 SetTitleMatchMode 进行更改.

错误处理

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

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

备注

有关样式的部分列表, 请参阅样式列表.

将某些样式更改应用于可见窗口后, 可能需要使用 WinRedraw 重新绘制窗口.

鼠标光标下的窗口的 ID 可以使用 MouseGetPos 来获取.

WinGetStyle / WinGetExStyle, ControlSetStyle / ControlSetExStyle, 样式列表, 窗口函数, 控件函数

示例

移除活动窗口的标题栏(WS_CAPTION).

WinSetStyle "-0xC00000", "A"

切换 WS_EX_TOOLWINDOW 属性, 它会从 alt-tab 列表中移除/添加 Notepad 窗口.

WinSetExStyle "^0x80", "ahk_class Notepad"