If this is true, I am screwed!

Does this help, Paul?


Message: 5
Date: Sun, 16 Mar 2003 04:39:41 -0800 (PST)
From: Jan Schenkel <[EMAIL PROTECTED]>
Subject: Re: Does Send To Program Work?
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]

--- Rob Cozens <[EMAIL PROTECTED]> wrote:
Hi All,

 I'd like to hear from one person who can confirm
 that "send .. to
 program" works.

Scenario:

I start a RunRev standalone, "IPC_Server".

I start RunRev on the same computer.

  From the message box I type 'send "Quit" to program
 "IPC_Server"'
 result: no such program

 I launch clip2Gif and type 'send "Quit" to program
 "clip2Gif"'
 result: no such program

 Again from the message box,  'send "Quit" to program
 "Finder"'
 result: got error -1702 when sending apple event
 [1702 = invald data]

 Mac OS 9, RR v1.5A7
 --

Rob Cozens

Hi Rob,


It took me a while to test various combinations, but
here are my conclusions for RunRev 1.1.1:

1) 'send to program ... with reply'
- problem: results in an error upon execution
- solution: omit the optional 'with result' clause
- note: 'without reply' doesn't result in an error

2) 'answer program' doesn't work in MC/RR
- known issue, due to limitations in the Carbon API
- solution: do "choose application" as AppleScript
- note: would still be handy if it were included

2) 'send to program' on the same machine works, but
'send to program' where the program is on a remote
machine doesn't work
- i tried it on a variation of machines, but the error
is always "no such program"
- solution:  AppleScript to the rescue ! there is a
little-known method of sending 'raw' apple events from
within AppleScript, so the trick is to wrap it as an
AppleScript of the form:
  tell application "Foo" of machine "Bar"
    <<event rIPCrIPL>> "Hello there!" & return
  end tell
in which << and >> are to be replacd by their
single-char equivalents for MacOS (ASCII- 199 and
200).
So here's a sample code that works :
  on SelectProgramAndSendAE pAEclass, pAEid, pAEdata
    do "choose application" as AppleScript
    put the result into tResult
    if tResult is "execution error" then
      return "Cancel"
    else put tResult into tProgram
    -- looks like: application "Foo" of machine "Bar"
    put "tell" && tProgram & return into tAScript
    put numToChar(199) & "event" && pAEclass & pAEid \
      & numToChar(200) && pAEdata && "& return" & \
      return after tAScript
    put "end tell" & return after tAScript
    do tAScript as AppleScript
    return the result
  end SelectProgramAndSendAE
- note: this was very messy to debug, and I crashed my
iBook several times before I got it right.
- warning: if the application on the other side is a
RunRev-built one, make sure you 'pass' any AppleEvent
message that you don't handle with a 'reply', or you
risk freezing up the client-side computer.

I also tested the same code with pre-beta 4, with
equal results. So in conclusion: yes, this is a
definite bug, and I don't like the workaround, but at
least there is one.

Scott or Kevin, could this be fixed for MetaCard 2.5 /
RunRev 2.0?

Jan Schenkel.

--


Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.net/who.htm

"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."

from "The Triple Foole" by John Donne (1572-1631)
_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to