@cjser/get-windows

中文文档
10.0.0-cjser.2发布于 2026/11/01MITTypeScriptESM + CJS零依赖

获取有关活动窗口和打开窗口的元数据(标题、id、边界、所有者、URL等)

中文使用文档
文档目录15 节
  1. 安装
  2. 使用
  3. API
  4. activeWindow(选项?)
  5. activeWindowSync(选项?)
  6. 结果
  7. openWindows ()
  8. openWindowsSync ()
  9. 操作系统支持
  10. Linux支持
  11. 使用电子
  12. 用户
  13. 相关
  14. 开发
  15. cjser

让windows

获取有关 活动窗口 并打开窗口(标题,id,边界,所有者,URL等)

适用于macOS 10.14+、Linux (请注意),以及Windows 7+。

安装

npm install get-windows

这是一个ESM包,需要你使用ESM

使用

import {activeWindow} from 'get-windows';

console.log(await activeWindow(options));
/*
{
    title: 'Unicorns - Google Search',
    id: 5762,
    bounds: {
        x: 0,
        y: 0,
        height: 900,
        width: 1440
    },
    owner: {
        name: 'Google Chrome',
        processId: 310,
        bundleId: 'com.google.Chrome',
        path: '/Applications/Google Chrome.app'
    },
    url: 'https://sindresorhus.com/unicorn',
    memoryUsage: 11015432
}
*/

API

activeWindow(选项?)

获取有关活动窗口的元数据。

选项

类型: object

accessibilityPermission (仅macOS)

类型: boolean
默认值: true

启用可访问性权限检查。将其设置为 false 将阻止macOS 10.15及更新版本上的访问权限提示。这个 url 属性将无法检索。

screenRecordingPermission (仅macOS)

类型: boolean
默认值: true

开启录影权限检查。将其设置为 false 将阻止macOS 10.15及更新版本上的屏幕录制权限提示。这个 title 属性将始终设置为空字符串。

activeWindowSync(选项?)

同步获取有关活动窗口的元数据。

结果

返回一个 Promise<object> 结果,或者 Promise<undefined> 如果没有活动窗口或信息不可用。

  • platform (字符串) - 'macos' | 'linux' | 'windows'
  • title (字符串) -窗口标题
  • id (数量) -窗口标识符
  • bounds (对象) -窗口位置和大小
    • x (数量)
    • y (数量)
    • width (数量)
    • height (数量)
  • contentBounds (对象) —窗口内容的位置和大小,不包括标题栏、菜单栏和框架 (Windows)
    • x (数量)
    • y (数量)
    • width (数量)
    • height (数量)
  • owner (对象) -拥有窗口的应用程序
    • name (字符串) —应用名称
    • processId (数量) -进程标识符
    • bundleId (字符串) - Bundle标识符 (仅macOS)
    • path (字符串) -应用的路径
  • url (字符串) —如果当前窗口是支持的浏览器,则显示当前窗口页签的URL (仅macOS)
    • 支持的浏览器:Safari(包括技术预览),Chrome(包括Beta, Dev和金丝雀),Edge(包括Beta, Dev和金丝雀),Brave(包括Beta和Nightly), Mighty, Ghost Browser, Wavebox, Sidekick, Opera(包括Beta, Developer和GX),或Vivaldi
  • memoryUsage (数量) —窗口所有者进程的内存使用情况

openWindows ()

获取所有打开窗口的元数据。

窗户按照从前到后的顺序返回。

返回 Promise<Result[]>.

如果无法读取窗口列表,则数组为空。

openWindowsSync ()

同步获取所有打开窗口的元数据。

窗户按照从前到后的顺序返回。

返回 Result[].

如果无法读取窗口列表,则数组为空。

操作系统支持

它适用于macOS 10.14+, Linux和Windows 7+。

注意在Windows上,没有一个“窗口ID”的明确概念。方法中窗口“句柄”的内存地址 id 财产。该“句柄”在每个窗口中是唯一的,因此可以使用它来识别它们。 阅读更多…

Linux支持

韦兰不被支持。出于安全原因,Wayland没有提供识别活动窗口的方法。 阅读更多…

使用电子

如果您在电子应用程序中使用这个包是沙盒的,并且您希望获得 .url 属性,则需要添加 适当的权利和用法描述.

用户

开发

绕过 gyp 构建:

npm install --ignore-scripts
  • 调试日志:设置 DEBUG_GET_WINDOWS=1 将Linux窗口枚举错误和汇总计数记录到控制台。

cjser

这个包是由cjser为仍然需要的项目生成的commonjs兼容的构建 require() 支持。源版本与原始的npm包版本匹配,对这个生成的构建带有cjser预发布后缀。 原始存储库: https://github.com/sindresorhus/get-windows

版本与发布记录

@cjser/get-windows 共发布 2 个版本,首次发布于 2026/05/07;过去 12 个月发布了 2 个版本。

版本发布日期距今
10.0.0-cjser.2latest2026/11/012 天前
9.3.0-cjser.22026/05/075 个月前

关于 @cjser/get-windows 的常见问题

@cjser/get-windows 是什么?

获取有关活动窗口和打开窗口的元数据(标题、id、边界、所有者、URL等)

如何安装 @cjser/get-windows?

在项目目录运行 npm install @cjser/get-windows,或使用 pnpm add / yarn add / bun add。

@cjser/get-windows 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cjser/get-windows 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cjser/get-windows 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cjser/get-windows 可以商用吗?

@cjser/get-windows 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cjser/get-windows 还在维护吗?

最新版本 10.0.0-cjser.2 发布于 2026/11/01(2 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/05/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。