On 30/03/2010, at 2:51 PM, Joe F. wrote:

Does anyone know of a way to identify the Windows machine of a certain user in a reliable way.

I want my app to download a stack file which will only run on one user's machine. Is there a way to access something like a MAC number or some unique identifier on Windows machines.

Yep:

# GetMACAddress()
#
# Function to return the MAC address
#
# Makes use of ifconfig on OS X and ipconfig on Windows

function getMACAddress
  -- value to return
  local retVal
  switch (the platform)
  case "MacOS"
    if the systemVersion < 10 then
      -- MacOS
      set the directory to specialFolderPath("apple")
      put "tell application" && quote & "Apple System Profiler" & \
quote & cr & "get appletalk address" & cr & "end tell" into getMACScript
      put "tell application" && quote & "Apple System Profiler" & \
quote & cr & "close window" && quote & "Apple System Profiler" & quote & \
          cr & "end tell" into quitASPScript
      do getMACScript as AppleScript
      put the result into retVal
      do quitASPScript as AppleScript
      replace "{" with "" in retVal
      replace "}" with "" in retVal
      replace quote with "" in retVal
    else
      -- OS X
      put shell("ifconfig en0") into ifConfigs
      if char 1 to 4 of ifConfigs = "zsh:" then
        return "Error retrieving interface configuration."
      else
get matchText(ifconfigs,"(?s)ether (.*?) ",retVal) -- These are spaces on either side of (.*?)
        if it is false then
          return "Error retrieving MAC address."
        end if
      end if
    end if
    break
  case "Win32"
    -- All Windows
put (there is a file (specialFolderPath("system") & "/ IPCONFIG.EXE")) into winExists put (there is a file (specialFolderPath("system") & "/SYSTEM32/ IPCONFIG.EXE")) into sys32Exists
    if winExists or sys32Exists then
      set the hideConsoleWindows to true
      put shell("ipconfig /all") into temp
      get matchText(temp,"Physical Address[\. ]*: ([A-Z0-9-]*)",retVal)
    else
      return "Error retrieving MAC address."
    end if
    break
  end switch
  return retVal
end getMACAddress


Bonus question:
Is there a good way to make a stack self-destruct?

Just don't let the user save the file if you only want it run just after the download.
use:
go stack url http://www.myserver.com/test.rev

Cheers

Monte
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to