Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何获取NSRunningApplication的窗口_Cocoa_Nsapplication_Nsworkspace_Nsrunningapplication - Fatal编程技术网

Cocoa 如何获取NSRunningApplication的窗口

Cocoa 如何获取NSRunningApplication的窗口,cocoa,nsapplication,nsworkspace,nsrunningapplication,Cocoa,Nsapplication,Nsworkspace,Nsrunningapplication,我想获取正在运行的应用程序的窗口列表。 我可以从[[NSWorkspace sharedWorkspace]runningApplications]获取正在运行的应用程序列表,但窗口列表仅在NSApplication上可用。 是否有某种方法可以从NSRunningApplication转换为NSApplication,或者有某种方法可以更直接地获取窗口列表?您需要查看CoreGraphics调用CGWindowListCopyWindowInfo 你这样叫它 CFArrayRef win

我想获取正在运行的应用程序的窗口列表。 我可以从
[[NSWorkspace sharedWorkspace]runningApplications]
获取正在运行的应用程序列表,但窗口列表仅在
NSApplication
上可用。
是否有某种方法可以从
NSRunningApplication
转换为
NSApplication
,或者有某种方法可以更直接地获取窗口列表?

您需要查看CoreGraphics调用
CGWindowListCopyWindowInfo

你这样叫它

    CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);

然后遍历窗口信息数组,找到您感兴趣的应用程序中的窗口信息,并对其执行所需操作。

这里有一个相同的问题,已经回答了:即使在这里,寡妇列表也更直接地表示?谢谢。我会检查那两个,如果我需要什么回来。嘿,肯!这是一个很好的答案/提示,但它仍然不能告诉您如何获得
CG/NSWindow
;-)
NSRunningApplication
没有提供windows/window编号,当我试图用
CGWindowID
获取
NS/CGWindow
时,我正在崩溃(可能是做错了什么),这是因为您无法为另一个应用程序创建NSWindow。就获取特定应用程序的窗口而言,您可以检查并比较
kCGWindowOwnerPID
键的值与
NSRunningApplication
processIdentifier
属性。