* ============================================= FUNCTION cWindowsID As String && productID de Windows LOCAL luResult as Variant; , loAPI AS wwAPI OF wwAPI.prg; , objWMI as Object; , colClass as Object; , objItem as Object luResult = .NULL. && don't know TRY loAPI = CreateObject('wwAPI') luResult = Nvl(; loAPI.readRegistryString(,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\', 'ProductID'); , loAPI.readRegistryString(,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\', 'ProductID'); ) CATCH ENDTRY IF IsNull(m.luResult) OR Empty(m.luResult) TRY objWMI = GetObject("winmgmts:\\.\root\cimv2") colClass = objWMI.ExecQuery("Select * from Win32_OperatingSystem",,48) FOR EACH objItem IN colClass luResult = objItem.SerialNumber IF NOT Empty(m.luResult) EXIT ENDIF ENDFOR CATCH ENDTRY ENDIF RETURN m.luResult