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
如何在macOS上以编程方式获取当前工作区_Macos_Cocoa_Applescript_Mission Control - Fatal编程技术网

如何在macOS上以编程方式获取当前工作区

如何在macOS上以编程方式获取当前工作区,macos,cocoa,applescript,mission-control,Macos,Cocoa,Applescript,Mission Control,我希望能够随时告知用户当前在macOS 10.13上以编程方式使用的任务控制工作区。 我在搜索过程中找不到任何有效答案。 任何语言都可以,任何工作区标识符都适用于我(uuid,工作区编号…) 谢谢你的帮助 看起来这需要未记录的API调用 及 CG\u外部CGSSpaceID CGSGetActiveSpace(CGSConnectionID cid) 你可以做你想做的,但是这段代码已经三年没有被接触过了,所以系统/api可能已经迁移了,使用未记录的api的所有问题都适用 在项目中找到了这个 尚

我希望能够随时告知用户当前在macOS 10.13上以编程方式使用的任务控制工作区。 我在搜索过程中找不到任何有效答案。 任何语言都可以,任何工作区标识符都适用于我(uuid,工作区编号…)


谢谢你的帮助

看起来这需要未记录的API调用

CG\u外部CGSSpaceID CGSGetActiveSpace(CGSConnectionID cid)

你可以做你想做的,但是这段代码已经三年没有被接触过了,所以系统/api可能已经迁移了,使用未记录的api的所有问题都适用

在项目中找到了这个

尚未使用或验证。

  • 下载私有标题
  • 将它们放在系统上的文件夹中
  • 转到您的项目
    生成设置
    ,并将该文件夹添加到
    用户标题搜索路径
然后你可以这样做:


如果您想要一个“工作答案”,请使用一个间接GUI“变量”来告知您的位置:


告诉应用程序“系统事件”以字符串的形式将(每个桌面的图片作为列表)的第1项的第27项到第1项发送到文本中(谢谢,这是很实用的!)(为什么有人要投票否决这个实际上帮助了某人的答案,并且清楚地标记为“工作解决方案”?!我不理解这里的一些“用户”…“很伤心”;-))谢谢你也解决了我的用例,你认为你能把它转换成JXA吗?在我把我的“工作答案”贴在下面之后,我为自己创建了一个“菜单栏图标”,它由一个简单的.sh脚本组成<代码>#/bin/bash_/'osascript/Users/myComputerName/.config/bitbar/Workingspace_Desktop.app
。只需放置在第三方(“BitBar”)插件文件夹中,该文件夹调用带有
的AppleScript,如果BGname为“Sierra.jpg”,则将BGname设置为“[1]”
等。在我的右侧菜单栏中显示[1]或[2]或[3]或[4]。如果你读到目前为止,你会猜到任何信息都可以永久显示…嗨,我对这个问题有一些扩展。我的目标是将应用程序创建的窗口放在前面。因此,我使用
CGSSpaceCreate
创建新空间,并希望使用
CGSSpaceSetAbsoluteLevel
设置它的优先级,但如何找到应该在level中输入的内容?谢谢
#import "AppDelegate.h"
#import "CGSInternal/CGSSpace.h"

@implementation AppDelegate

typedef int CGSConnection;
extern CGSConnection _CGSDefaultConnection(void);

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

    CGSSpaceID activeSpace = CGSGetActiveSpace(_CGSDefaultConnection());
    NSLog(@"activeSpace: %zu", activeSpace);

    CFArrayRef spaceArray = CGSCopySpaces(_CGSDefaultConnection(), kCGSAllSpacesMask);
    NSLog(@"allSpaces: %@", spaceArray);
}

@end
set delimOrgs to text item delimiters
set text item delimiters to {"/"}
tell application "System Events" to set BGpict to ¬
     last text item of (picture of current desktop as text)
set text item delimiters to delimOrgs
return BGpict                         [improved: user3439894's suggestion]