2009-12-08 1 views
1

Как изменить размер окна любого приложения программно с помощью объектива-c/какао? Пока у меня есть имя приложения и номер окна, но я не знаю, как получить доступ к окну.Objective C - как программно изменить размер окна с заданным идентификатором окна?

Я мог бы сделать это с помощью AppleScript, но хочу изучить его с помощью объектива c.

AppleScript пример:

tell application "System Events" 
    set frontApp to name of first application process whose frontmost is true 
end tell 


tell application frontApp 
    set bounds of window 1 to {(screenWidth/2), 0, screenWidth, screenHeight} 
end tell 

Спасибо за любые советы.

+0

Не понимаю. Когда вы говорите «у меня есть имя приложения», вы имеете в виду, что вы пытаетесь изменить размер окна * другого приложения? Если это так, AppleScript, вероятно, путь. Вы можете запустить скрипт из программы Obj-C, используя NSAppleScript. –

+0

Да, я обновил вопрос, чтобы быть более ясным. Благодарю. – dan

ответ

2

В этом случае AppleScript действительно является подходящим инструментом для работы. Говорить о другом приложении для изменения размера окна - проблема автоматизации. Написание этого кода «в какао» означало бы больше работы по созданию/отправке AppleEvents с более низкого уровня.

Я бы попробовал использовать NSAppleScript для загрузки и выполнения этого скрипта из программы Cocoa. Если вы узнаете, как это сделать, вы узнаете, как встраивать AppleScript в ваши программы Objective-C, и это удобный трюк для вашего пояса.

Удачи вам!

1

Вам понадобится доступ к системе доступности. Я понятия не имею, какую функцию или объект или что вам нужно, чтобы посмотреть, как отправлять сообщения на доступность окон.

О, но я могу дать вам ссылку на программное обеспечение, я знаю, что делает то же самое,
https://github.com/fikovnik/ShiftIt

Посмотрите там для ответа.

Бьюсь об заклад, если вы посмотрите в этом коде для функции accessibilitySetValue, вы можете нанести удар по золоту.
http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/occ/instm/NSObject/accessibilitySetValue:forAttribute:

Смежные вопросы