Way to detect if IE is installed?

Andre Garzia soapdog at mac.com
Tue Aug 10 20:54:32 EDT 2004

Just fetched from macScripter.net

ell application "Finder"
  Ê Êtry
  Ê ÊÊ Êif exists application file id "MSIE" then
  Ê ÊÊ ÊÊ Êset iePath to application file id "MSIE"
  Ê ÊÊ ÊÊ Êdisplay dialog ("IE Located at: " & return & iePath & "") as 
  Ê ÊÊ Êend if
  Ê Êon error --> In case it's not found
  Ê ÊÊ Êdisplay dialog "Couldn't find IE!"
  Ê Êend try
  end tell

you can use it to find other apps as well, just change the creator 
code. AppleScript can be fun!

On Aug 10, 2004, at 8:44 PM, Greg Hall wrote:

> 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
>> use-revolution at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/use-revolution
> ================
> Greg Hall
> greghall at uvic.ca
> ================
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
Andre Alves Garzia ð 2004 ð BRAZIL

More information about the Use-livecode mailing list