python获取mac窗口程序内容_如何在Mac上的Python中列出所有工作区中的所有窗口?...

这段Python脚本能够获取Mac上所有桌面、工作区和显示器的窗口详细信息,包括全屏和非全屏窗口。它列出了窗口的PID、窗口号、坐标、大小和标题。脚本首先打印初始窗口列表,然后等待用户移动目标窗口,之后再次捕获窗口列表并显示变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下脚本应在任何桌面/工作区/显示器,全屏和详细信息(坐标,pid,标题等)上返回窗口信息:

#!/usr/bin/python

import Quartz

import time

from Quartz import CGWindowListCopyWindowInfo, kCGWindowListExcludeDesktopElements, kCGNullWindowID

from Foundation import NSSet, NSMutableSet

def windowList(wl):

for v in wl:

print (

str(v.valueForKey_('kCGWindowOwnerPID') or '?').rjust(7) +

' ' + str(v.valueForKey_('kCGWindowNumber') or '?').rjust(5) +

' {' + ('' if v.valueForKey_('kCGWindowBounds') is None else (

str(int(v.valueForKey_('kCGWindowBounds').valueForKey_('X'))) + ',' +

str(int(v.valueForKey_('kCGWindowBounds').valueForKey_('Y'))) + ',' +

str(int(v.valueForKey_('kCGWindowBounds').valueForKey_('Width'))) + ',' +

str(int(v.valueForKey_('kCGWindowBounds').valueForKey_('Height')))

) ).ljust(21) + '}' +

'\t[' + ((v.valueForKey_('kCGWindowOwnerName') or '') + ']') +

('' if v.valueForKey_('kCGWindowName') is None else (' ' +

v.valueForKey_('kCGWindowName') or ''))

).encode('utf8')

wl1 = CGWindowListCopyWindowInfo(kCGWindowListExcludeDesktopElements, kCGNullWindowID)

print('Move target window (or ignore)\n')

time.sleep(5)

print('PID'.rjust(7) + ' ' + 'WinID'.rjust(5) + ' ' + 'x,y,w,h'.ljust(21) + ' ' + '\t[Title] SubTitle')

print('-'.rjust(7,'-') + ' ' + '-'.rjust(5,'-') + ' ' + '-'.ljust(21,'-') + ' ' + '\t-------------------------------------------')

wl2 = CGWindowListCopyWindowInfo(kCGWindowListExcludeDesktopElements, kCGNullWindowID)

w = NSMutableSet.setWithArray_(wl1)

w.minusSet_(NSSet.setWithArray_(wl2))

wl = Quartz.CGWindowListCopyWindowInfo( Quartz.kCGWindowListOptionAll, Quartz.kCGNullWindowID)

wl = sorted(wl, key=lambda k: k.valueForKey_('kCGWindowOwnerPID'))

windowList(wl)

print('\nDetailed window information: {0}\n'.format(w))

### 配置 Mac 上的 VSCode 用于 Python 开发 #### 安装 Visual Studio Code 和 Python 插件 为了在 Mac 上使用 VSCode 进行 Python 开发,首要条件是安装最新版本的 Visual Studio Code 应用程序。完成应用程序安装之后,需通过扩展市场搜索并安装官方提供的 Python 扩展包[^2]。 #### 设置 Python 解释器 启动 VSCode 后,应选择合适的 Python 解释器来确保代码能够正常执行。这一步骤可以通过命令面板 (`Cmd+Shift+P`) 输入 `Python: Select Interpreter` 来实现。系统将会列出已安装的不同版本的 Python 环境供开发者挑选最匹配项目需求的那个解释器版本[^1]。 #### 创建工作区和配置文件结构 建议创建一个新的文件夹作为项目的根目录,并将其添加至 VSCode 的 workspace 中以便管理和维护源码文件和其他资源。此操作有助于更好地组织项目内的各个组成部分以及简化后续设置过程[^4]。 #### 安装必要的依赖库 依据具体应用的要求,可能还需要额外安装某些第三方模块或框架。此时可以利用终端窗口内建于 VSCode 下方的功能区域直接运行 pip 命令来进行软件包管理;例如要安装 matplotlib 只需键入如下指令: ```bash pip install matplotlib ``` #### 修改 VSCode 的配置选项 对于更高级别的定制化需求,则可通过编辑 `.vscode/settings.json` 文件来自定义编辑器行为、外观样式或是集成其他工具链服务。特别是当涉及到特定平台特性时——比如 macOS ——调整这些参数往往能让用户体验更加流畅高效[^3]。 #### 调试功能启用 最后但同样重要的一点就是激活内置调试器的支持能力。点击左侧边栏中的调试图标进入相应界面后按照提示逐步完善 launch configuration 即可轻松实现在本地环境中对 Python 程序进行断点跟踪分析等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值