FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour How To Identify A Computer
Posts: 175
Joined: Tue Nov 10, 2009 10:56 AM
How To Identify A Computer
Posted: Mon May 27, 2013 12:03 AM

Hi

I think Netname() is not unique. Is there a way to identify a computer ?

Thanks

Regards
ACWoo
FHW1304+bcc582+Harbour

Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM
Re: How To Identify A Computer
Posted: Mon May 27, 2013 12:21 AM
Code (fw): Select all Collapse
//-----------------------------------------------------------
Static Function SerialProtect()
//-----------------------------------------------------------
local oLoc := CreateObject( "wbemScripting.SwbemLocator" )
local oSrv := oLoc:ConnectServer(,"root\cimv2")
local aDrives := oSrv:ExecQuery( "SELECT * FROM Win32_ComputerSystemProduct" )
local oDrive, cSerial := ""
Local aData  := {}

 for each oDrive in aDrives
  AADD( aData, oDrive:UUID )
 Next

 For nAt := 1 to Len( aData )
  cSerial += Upper( AllTrim( cStr( aData[nAt] ) ) )
 Next nAt

Return( cSerial )
Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 368
Joined: Sun May 31, 2009 06:25 PM
Re: How To Identify A Computer
Posted: Mon May 27, 2013 12:24 AM
You can use MAC address.

Code (fw): Select all Collapse
 
FUNCTION MacAddress
LOCAL oLoc
LOCAL oSrv
LOCAL oNics
LOCAL oTemp
LOCAL aMacs := {} 
  
oLoc := CREATEOBJECT( "wbemScripting.SwbemLocator" ) 
oSrv := oLoc:ConnectServer() 
oNics := oSrv:ExecQuery( "SELECT * FROM Win32_NetworkAdapter WHERE ConfigManagerErrorCode = 0" ) 
FOR EACH oTemp IN oNics 
    IF !empty( oTemp:MACAddress ) 
        AADD( aMacs, oTemp:MACAddress )
    ENDIF
NEXT 
RETURN if( !empty( aMacs ), aMacs[ 1 ], transform( HB_Random() * 1000000000000, "99:99:99:99:99:99" ) )
Regards,



André Dutheil

FWH 13.04 + HB 3.2 + MSVS 10

Continue the discussion