[Pythonmac-SIG] just one apple event
Bill Bedford
billpy@mousa.demon.co.uk
Mon, 13 Dec 1999 11:00:03 +0000
At 12:19 pm -0800 12/12/99, Dante wrote:
>
>I don't think I stated my problem clearly. Once I build modules with
>gensuitemodule.py I am able to make the call as I (more or less)
>normally would. But I am left with several k of python code that I
>don't necessarily need or want. Somewhere in the files created by
>gensuitemodule.py Python sends the appleevent "misc, dosc,
>"----":"workspace.foo", &tran:63464" to "LAND". That event is
>identical to the one sent by the applescript one liner I can write
>to do this job except for the &tran which is replaced with
>&subj:'null'()
>
>For instance, in UserTalk (which bears a striking resemblance to
>Python) there is the following call: appleevent("LAND", "misc",
>"dosc", "----", "workspace.foo") which is pretty self explanatory.
>
>What I want is the python version of this one liner and I can't seem
>to figure out where I go for this.
You build a wrapper module that does just this for you. See
Python->Mac->Lib->findertools.py for an example of this for the
finder. This gives a syntax which is similar to Applescript, i.e.
in applescript you have
Tell application "finder" to sleep
in Python its
findertools.sleep()
A word of caution. Python only allocates/can use one transaction
number per session. So if your script calls do_script more than once
it will fail. So far I have only found this to be a problem scripting
Hypercard, where there are lots of alternatives, but YMMV
--
Bill Bedford mailto://billb@mousa.demon.co.uk
"So we're surrounded by absolutely nothing. There's a word for it.
It's what you get when there's nothing left and everything's been used
up." - "Yes. I think it's called the bill."