[Pythonmac-SIG] trouble getting window bounds via appscript
Todd
t.greenwoodgeer at gmail.com
Sat Feb 6 07:39:40 CET 2010
Ned,
Thanks! That unblocked me. I changed my code to enumerate over the
applications, and then create an app instance from that.
// get the front most app from system events
se_app_name = se.processes...name.get()
// get the actual application
real_app = app(se_app_name)
// get the windows for the app
real_app.windows()
etc.
Works like a charm, tho some apps, like firefox, have a System Event
name that I cannot simply call 'app(name)' on. I'll sort that out later.
Thanks again.
-Todd
On 2/5/10 2:21 PM, Ned Deily wrote:
> In article<4B6C8E7B.8000105 at gmail.com>,
> Todd<t.greenwoodgeer at gmail.com> wrote:
>> I'd like to perform some window management via appscript on Mac OSX
>> (10.6.2).
>>
>> This is pretty straightforward using AppleScript (see code#1 below).
>> However, my attempts to perform the same tasks in python appscript have
>> failed:
>>
>> 1. get bounds of display
>> 2. get bounds of foreground process
>>
>> I can query the 'System Events' for the process list, and get the
>> foremost process...however, I cannot get the bounds from the windows.
>> (see code#2 below).
>>
>> The appscript error is:
>> ------------------------------------------------
>> CommandError: Command failed:
>> OSERROR: -1728
>> MESSAGE: Can't get reference.
>> OFFENDING OBJECT:
>> app(u'/System/Library/CoreServices/System
>> Events.app').application_processes[u'iTerm'].windows[u'todd at greenmachine:
>
> You need to get a windows reference from each application's object, not
> from a System Events app object:
>
>>>> bounds_tuple = app('Terminal').windows.first.bounds()
>>>> print bounds_tuple
> (675, 310, 1330, 820)
>
More information about the Pythonmac-SIG
mailing list