# GroupDeactivate

类似于 GroupActivate, 不同的是它激活 不 在组中的下一个窗口.

    GroupDeactivate GroupName , Mode

## 参数

GroupName

  类型: 字符串

  目标组的名称, 最初由 GroupAdd 定义.

Mode

  类型: 字符串

  如果省略, 函数将激活最老的非成员窗口. 要更改此行为, 请指定以下字母:

  R: 最新的非成员窗口(最近激活的窗口) 被激活, 但仅当函数运行时该组的成员处于活动状态时才会激活. "R" 在临时切换到处理不相关任务的情况下非常有用. 当您使用 GroupActivate, GroupDeactivate 或 GroupClose 返回组时, 会激活您最近工作的窗口而不是最老的窗口.

## 备注

GroupDeactivate 会激活 不 匹配组中任何窗口规格的首个窗口. 再次使用 GroupDeactivate 将激活系列窗口中的下一个. 通常给 GroupDeactivate 分配一个热键, 以便使用热键自动遍历窗口.

此函数可用于您拥有几乎总是在运行的常用窗口集合时. 通过把这些窗口添加到一个组中, 您可以使用 GroupDeactivate 访问每个不常用窗口并决定是否关闭它. 此函数可以让您快速清理桌面, 比手动快得多.

GroupDeactivate 选择窗口的方式类似于 `Alt`+`Shift`+`Esc` 系统热键. 具体来说:

- 子窗口, 如某些对话框和工具窗口, 不会被计算在内. 但是, 如果父窗口符合激活条件, 则会激活最近激活的子窗口, 除非父窗口最近是激活的. 这是通过调用 GetLastActivePopup 来确定的.
- 具有 WS_EX_TOPMOST 或 WS_EX_NOACTIVATE 样式的窗口将被跳过.
- 具有 WS_EX_TOOLWINDOW 样式但没有 WS_EX_APPWINDOW 样式的窗口将被跳过. (这些窗口通常也会从 Alt-Tab 和任务栏中省略.)
- 被禁用的窗口会被跳过, 除非它拥有的窗口(比如模式对话框) 比窗口本身更早被激活.
- 隐藏或 cloaked 的窗口会被跳过.
- 桌面会被跳过.

虽然由于 WS_EX_TOPMOST 样式任务栏被跳过, 但如果没有其他符合条件的窗口并且活动窗口与组匹配, 任务栏就会被激活.

关于窗口组的更多细节, 请参阅 GroupAdd.

## 相关

GroupAdd, GroupActivate, GroupClose

## 示例

激活不属于窗口组成员的最老窗口.

    GroupDeactivate "MyFavoriteWindows"  ; 访问非收藏的窗口来清理桌面

dftg