WinSetStyle / WinSetExStyle

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

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

参数

Value

类型: 整数字符串

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

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

操作 前缀 示例字符串 公式
添加 + +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 实用程序显示). 如果 DetectHiddenText 已经打开, 则检测隐藏文本元素. 标题或文本包含 ExcludeTitleExcludeText 的窗口将不被考虑.

错误处理

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

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

备注

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

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

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

窗口标题和文本是区分大小写的. 除非 DetectHiddenWindows 被打开, 否则不会检测隐藏窗口.

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

示例

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

WinSetStyle "-0xC00000", "A"

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

WinSetExStyle "^0x80", "ahk_class Notepad"
unixetc