【问题标题】:Get window title and Application/Process name of all the visible application window processes in mac获取mac中所有可见应用程序窗口进程的窗口标题和应用程序/进程名称
【发布时间】:2020-04-03 16:56:38
【问题描述】:

有什么方法可以在mac中获取窗口标题及其对应的进程名。

目前,我只能使用 AppleScript 获取窗口标题:

tell application "System Events" to get the title of every window of (every process whose visible is true)

如果我们可以通过任何电子 API/节点模块来做到这一点,那就太好了。

基本上我只想获取活动窗口标题列表及其进程 ID/名称

【问题讨论】:

  • @CJK 我标记了电子,因为我将它用于电子应用程序,除了 AppleScript 之外我找不到任何其他方式来完成这项工作,但如果有任何其他方式我们可以做通过任何电子 API 或使用任何节点模块都会很棒

标签: javascript node.js npm electron applescript


【解决方案1】:

我想这一切都取决于你真正想要做什么......

下面的示例 AppleScript 代码(如下所示)将创建一个可见的列表进程和它们的窗口标题作为processNamesAndWindowTitlesLists中的列表列表。

换句话说,processNamesAndWindowTitlesLists 的每个 item 都是一个 list,其中包含一个 进程名称 及其 windows 标题 em> 作为一个列表。

例如,目前在我的系统上,item 1 of processNamesAndWindowTitlesLists 是:

{"TextEdit", {"Untitled", "Untitled 2"}}

因此,对于processNamesAndWindowTitlesLists 中的每个item,它的第一个item 是进程名称,第二个item 是其 windows 标题的列表。

示例 AppleScript 代码:

set tmpList to {}
set windowTitles to {}
set visibleProcesses to {}
set visibleProcessesWithWindows to {}
set processNamesAndWindowTitles to {}
set processNamesAndWindowTitlesLists to {}

tell application "System Events"
    set visibleProcesses to name of (every process whose visible is true)
    repeat with processName in visibleProcesses
        if (count windows of process processName) is not 0 then
            set end of visibleProcessesWithWindows to processName
        end if
    end repeat
    repeat with processName in visibleProcessesWithWindows
        set end of windowTitles to (name of every window of process processName)
        set end of tmpList to (processName as list) & windowTitles
        set end of processNamesAndWindowTitles to tmpList
        set windowTitles to {}
        set tmpList to {}
    end repeat
end tell

repeat with aItem in processNamesAndWindowTitles
    set end of processNamesAndWindowTitlesLists to item 1 of aItem
end repeat


return processNamesAndWindowTitlesLists

注意:example AppleScript code 就是这样,不包含任何 error 处理可能是适当的。用户有责任根据需要或需要添加任何错误处理。查看AppleScript Language Guide 中的try statement 和error statement。另请参阅Working with Errors。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2015-09-25
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2018-07-17
    • 2023-03-27
    相关资源
    最近更新 更多