Phil Davis wrote:
Hi List,

I decided to find a way to get a U3 drive's serial number on Mac (OS X only). Sorry, I don't have a method for Linux but would welcome anyone's contribution in this regard.

Here's what I came up with:

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).

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



Thanks -
Phil Davis
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to