Исполнив список всех окон (в г порядке спереди назад я думаю/надеюсь) с помощью CGWindowListCopyWindowInfo
но я имею вопрос с получением в NSWindow*
от него, так что я могу использовать с orderFront:
и т.д.Получить NSWindow * от CGWindowListCopyWindowInfo
Кажется, я даже не получаю от него CGWindowID
.
Это мой код, это js-ctypes.
var cfarr_win = ostypes.API('CGWindowListCopyWindowInfo')(ostypes.CONST.kCGWindowListOptionAll | ostypes.CONST.kCGWindowListExcludeDesktopElements, ostypes.CONST.kCGNullWindowID);
var cnt_win = ostypes.API('CFArrayGetCount')(cfarr_win);
for (var i = 0; i < cnt_win; i++) {
var thisWin = {};
// trying to get NSWindow* to the window here, so i can use with orderFront: etc
// example on how i get pid:
var rez_pid = ostypes.API('objc_msgSend')(c_win, ostypes.HELPER.sel('objectForKey:'), myNSStrings.get('kCGWindowOwnerPID'));
var int_pid = ostypes.API('objc_msgSend')(rez_pid, ostypes.HELPER.sel('integerValue'));
thisWin.pid = int_pid;
// please help me on how to get NSWindow*
}
PS: Даже если я использую исключение рабочего стола элементов флага Я все еще получают настольные элементы, такие как курсор и док-станцию, любой шанс, если Отвечающим может пролить некоторый свет на то, как исправить это тоже, что было бы удивительным!
Во-первых, вы можете использовать 'NSWindow' для окон приложения, в котором работает код. Что вы на самом деле пытаетесь сделать? В каких окнах вы пытаетесь заказать фронт и почему? Если вы работаете с собственными окнами приложения, вы можете использовать '[NSWindow windowNumbersWithOptions: 0]', чтобы получить номера окон Cocoa и '[NSApp windowWithWindowNumber: someWindowNumber]', чтобы получить 'NSWindow * '. –
Aw drats @KenThomases благодарит за то, что вы всегда смотрите. У меня есть две потребности в двух разных аддонах. (1) Я создал вещь, в которой перечислены все окна для Windows, Linux/Unix и OSX. Тогда люди могут выбрать, какой из них они хотят остаться «Всегда на вершине». (2) И затем в другом приложении я пытаюсь сфокусировать последнее окно PID, поэтому я пересекаю окна в порядке z, и первый, который подходит к этому PID, я хочу сфокусировать его. Для этого второго случая мой единственный вариант, чтобы получить номер окна с этим методом, а затем использовать скрипт Apple? У меня нет резервных идей для первой необходимости :( – Noitidart
(3) Моя третья потребность, которая была для моего аддона экрана, заключалась в том, чтобы получить границы всех окон, для функции «Window Wand», используя это, а затем щелкнув по окну на скриншоте выбирает его, я смог справиться с этим. – Noitidart