Re: Way to detect if IE is installed?

2004-08-10 Thread Sarah Reichelt
I would check in the Applications folder, then in the user's 
Applications folder (if it exists). If you haven't found it by then, 
ask the user where it is (allowing them to say it isn't there) and 
store it's location in the custom property for use next time. If it has 
been moved out of the standard Applications folder, then I think you 
are justified in asking for it to be located, or assuming it isn't 
there.

Cheers,
Sarah
On 11 Aug 2004, at 7:17 am, [EMAIL PROTECTED] wrote:
Can anyone tell me if there's a way to detect on Mac OS X if IE is 
installed,
via Revolution?   Since the user could move IE to other locations on 
their
hard-drive, I can't really detect via file-path.
___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution


Re: Way to detect if IE is installed?

2004-08-10 Thread Greg Hall
I recall from using RealBasic in the past that there is some AppleEvent
you can execute that locates a program based on its creator code. I think
there is some way to enter this into Script Editor, but I forget what the
command is.

This would enable you to find any copy of IE on the users system
regardless of where it is installed. In fact, the creator code is all you
need to tell the program what to do, if you're trying to control IE from
RR. Effectively, you don't actually know where the copy of IE is
installed, and you don't need to - you can  launch and control it without
knowing where it is.

I don't know if it is possible just to detect the presence of IE, but is
possible to try the event that launches it, and if it fails, the user
doesn't have it.

Below is some code I used in RealBasic to launch Graphic Converter if it
isn't already running. One issue is that once you launch an app with an
AppleEvent, if you try to tell the app to do something before it has
finished launching, the event will fail. Unfortunately, there is no event
to find out if the app has finished launching.

What my code does is wait for GraphicConverter to launch by trying an
AppleEvent that reports how many windows GraphicConverter has open. This
event will fail unless GraphicConverter is finished loading an has
displayed its UI. So the program simply continuously tries executing the
AppleEvent until it is successful.

IE should support the same event for how many windows are open, so the
idea shd work.

You would need to adapt this code for RR (I just started using RR
yesterday, so I have no idea how it supports AppleEvents). This code is
fairly low-level, in RealBasic you have to specify the event type and
class and creator, so it may be hard to follow.


  'Wait for Finder to launch GC

  ae = NewAppleEvent(aevt, odoc, MACS)
  obj = GetUniqueIDObjectDescriptor(appf, nil, GKON)
  ae.ObjectSpecifierParam() = obj
  if not ae.Send then
MsgBox GraphicConverter is not available.
Quit
  end if

  'Wait until GC is able to report how many windows it has
  'That way, we know it's ready for events

  ae = NewAppleEvent(core, getd, GKON)
  obj = GetOrdinalObjectDescriptor(cwin, nil, all )
  ae.ObjectSpecifierParam() = obj
  while (not ae.Send)
  wend

  'Bring myself to front.
  ae = NewAppleEvent(aevt, odoc, MACS)
  if DebugBuild then
obj = GetUniqueIDObjectDescriptor(appf, nil, RBv2)
  else
obj = GetUniqueIDObjectDescriptor(appf, nil, Bant)
  end if
  ae.ObjectSpecifierParam() = obj
  if not ae.Send then
MsgBox Unable to activate self.
  end if


 Can anyone tell me if there's a way to detect on Mac OS X if IE is
 installed,
 via Revolution?   Since the user could move IE to other locations on their
 hard-drive, I can't really detect via file-path.
 ___
 use-revolution mailing list
 [EMAIL PROTECTED]
 http://lists.runrev.com/mailman/listinfo/use-revolution



Greg Hall
[EMAIL PROTECTED]

___
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution