我想使用applescript来获取应用程序的窗口,但由于应用程序可以有多个窗口,我使用objc来获取windowId,如下所示:
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly |
kCGWindowListExcludeDesktopElements,
kCGNullWindowID);
for (CFIndex i = 0; i < windowListCount; i++) {
CFDictionaryRef windowInfo = (CFDictionaryRef)CFArrayGetValueAtIndex(windowList, i);
CGWindowID windowId;
CFNumberGetValue((CFNumberRef)CFDictionaryGetValue(windowInfo, kCGWindowNumber), kCGWindowIDCFNumberType, &windowId);
}
但是这个windowId不同于我从appleScript获得的windowId,如下所示:
tell application "/Applications/QQBrowser.app"
repeat with theWindow in windows
if visible of theWindow is true then
get id of theWindow
end if
end repeat
告诉
我没有找到有用的,有人知道为什么吗?
我的目的是区分应用程序的窗口,是否有人有想法? 非常感谢〜
答案 0 :(得分:0)
tell application "Numbers"
get id of every window whose visible is true
end tell
Result: {1462, 1439}
这些是打开的可见窗口的唯一ID。您可以使用此唯一ID来区分应用程序中的窗口,还可以使用以下代码获取有关每个窗口的更多信息:
get properties of window id 1462