getting U3 serial number on Mac OS X

Richard Gaskin ambassador at fourthworld.com
Sun Dec 17 21:21:42 EST 2006


Phil Davis wrote:

 > I did a little more homework and decided to make one small change. The
 > system_profiler option (parameter) as originally coded doesn't work as
 > expected on my PowerPC Mac running 10.3.9; it has to be entered in an
 > older format to work. But more important, a parameter that asks
 > system_profiler for USB-only info makes it run between 2x and 7x
 > faster (roughly) depending on the state of the USB drive
 > (mounted/unmounted/removed).

Thanks Phil!  Good work.  It's one thing to craft a useful handler, and 
another to refine and optimize it.

That's a very helpful contribution to the community.


-- 
  Richard Gaskin Managing Editor, revJournal
  _______________________________________________________
  Rev tips, tutorials and more: http://www.revJournal.com


> So here's the updated function, ready for action on PowerPC or Intel Mac:
> 
> 
> 
> function u3SerialNumbers
>    # Return the serial numbers of all U3 drives currently known to the OS.
> 
>    switch the platform
> 
>    case "Win32"
>      return $U3_DEVICE_SERIAL
>      break
> 
>    case "MacOS"
>      set the itemDelimiter to "."
>      if the systemVersion < 10 then return empty -- system is not OS X
> 
>      -- prep
>      put 0 into x
>      put empty into tSerialNumberList
>      put shell("system_profiler SPUSBDataType") into tProfile
> 
>      -- get U3 serial numbers
>      repeat
>        put lineOffset("U3 smart drive:",tProfile) into xStart
>        if xStart = 0 then exit repeat -- no U3 drive was found
> 
>        put lineOffset("Serial Number:",tProfile,xStart) + xStart into xSerNum
>        put last word of line xSerNum of tProfile & cr after tSerialNumberList
>        delete line 1 to xSerNum of tProfile
>      end repeat
> 
>      delete last char of tSerialNumberList
>      return tSerialNumberList
>      break
> 
>    default
>      return empty
>      break
>    end switch
> end u3SerialNumbers
> 





More information about the use-livecode mailing list