首先,你想要窗口还是应用程序名?这不是Windows Mac OS X上的应用程序进程可以有多个窗口。(此外,这几年来,Windows也是如此,尽管我不知道API是什么样子的。)
第二,碳还是可可?
要在Cocoa中获取活动窗口:window = NSApp.mainWindow()
要在Cocoa中获取进程的名称:appName = NSProcessInfo.processInfo().processName()
编辑:哦,我想我知道你想要什么。最前面的进程的名称,对吗?
我不认为有办法用可可粉来做,但这里是如何用碳来做的:ProcessSerialNumber psn = { 0L, 0L };
OSStatus err = GetFrontProcess(&psn);
/*error check*/
CFStringRef processName = NULL;
err = CopyProcessName(&psn, &processName);
/*error check*/
别忘了做完后CFRelease(processName)。
我不知道在Python中会是什么样子,或者这是否可能。Python没有指针,这使得这很棘手。
我知道PyObjC会将后一个参数转换为CopyProcessName到err, processName = CopyProcessName(…),但是Carbon绑定不依赖于PyObjC(它们是核心Python 2的一部分),而且我不确定您如何处理PSN。