>>#Define HKEY_CLASSES_ROOT -2147483648 >>#Define HKEY_CURRENT_USER -2147483647 >>#Define HKEY_LOCAL_MACHINE -2147483646 >>#Define HKEY_USERS -2147483645 >>#Define REG_SZ 1 && String >>#Define REG_BINARY 3 && Binary data >>#Define REG_DWORD 4 && 32bits int >>#Define ERROR_SUCCESS 0 && OK >> >>PRIVATE nKey, cSubKey, cValue, cValueRead, m.value, value1, value2, value3, value4, value5, value6 >>m.value = sys(17)+chr(13) >>nkey = HKEY_LOCAL_MACHINE >> >>cSubKey = "Hardware\DESCRIPTION\System\CentralProcessor\0" >>cValue = "ProcessorNameString" >>cValueRead='' >>cValueRead = ReadREG_SZ(nKey, cSubKey, cValue) >>IF !EMPTY(cValueRead) >> m.value = m.value + "Processor 1: "+LTRIM(cValueRead)+CHR(13) >>ENDIF >> >>cSubKey = "Hardware\DESCRIPTION\System\CentralProcessor\1" >>cValue = "ProcessorNameString" >>cValueRead='' >>cValueRead = ReadREG_SZ(nKey, cSubKey, cValue) >>IF !EMPTY(cValueRead) >> m.value = m.value + "Processor 2: "+LTRIM(cValueRead)+CHR(13) >>ENDIF >> >>cSubKey = "Hardware\DESCRIPTION\System\CentralProcessor\2" >>cValue = "ProcessorNameString" >>cValueRead='' >>cValueRead = ReadREG_SZ(nKey, cSubKey, cValue) >>IF !EMPTY(cValueRead) >> m.value = m.value + "Processor 3: "+LTRIM(cValueRead)+CHR(13) >>ENDIF >> >>cSubKey = "Hardware\DESCRIPTION\System\CentralProcessor\3" >>cValue = "ProcessorNameString" >>cValueRead='' >>cValueRead = ReadREG_SZ(nKey, cSubKey, cValue) >>IF !EMPTY(cValueRead) >> m.value = m.value + "Processor 4: "+LTRIM(cValueRead)+CHR(13) >>ENDIF >> >>value2nd = passtwo() >>m.value = m.value+value2nd+CHR(13) >>? m.value >>RETURN m.value >> >>PROCEDURE ReadREG_SZ >> PARAMETERS nKey, cSubKey, cValue >> #DEFINE REG_SZ 1 >> >> DECLARE Integer RegOpenKey IN Win32API ; >> Integer nHKey, String @cSubKey, Integer @nResult >> DECLARE Integer RegQueryValueEx IN Win32API ; >> Integer nHKey, String lpszValueName, Integer dwReserved,; >> Integer @lpdwType, String @lpbData, Integer @lpcbData >> DECLARE Integer RegCloseKey IN Win32API Integer nHKey >> >> LOCAL nErrCode && Error Code returned from Registry functions >> LOCAL nKeyHandle && Handle to Key that is opened in the Registry >> LOCAL lpdwValueType && Type of Value that we are looking for >> LOCAL lpbValue && The data stored in the value >> LOCAL lpcbValueSize && Size of the variable >> LOCAL lpdwReserved && Reserved Must be 0 >> >> nKeyHandle = 0 >> lpdwReserved = 0 >> lpdwValueType = REG_SZ >> lpbValue = "" >> >> nErrCode = RegOpenKey(nKey, cSubKey, @nKeyHandle) >> IF (nErrCode # 0) THEN >> RETURN "" >> ENDIF >> >> lpcbValueSize = 1 >> nErrCode=RegQueryValueEx(nKeyHandle, cValue, lpdwReserved, @lpdwValueType, @lpbValue, @lpcbValueSize) >> >> lpbValue = SPACE(lpcbValueSize) >> nErrCode=RegQueryValueEx(nKeyHandle, cValue, lpdwReserved, @lpdwValueType, @lpbValue, @lpcbValueSize) >> >> =RegCloseKey(nKeyHandle) >> IF (nErrCode # 0) THEN >> RETURN "" >> ENDIF >> >> lpbValue = LEFT(lpbValue, lpcbValueSize - 1) >>RETURN lpbValue >> >> >>************************ >>PROCEDURE passtwo >>newvalue = '' >>VALUE1 = "Number of CPUs: " +GETENV("NUMBER_OF_PROCESSORS")+CHR(13) >>value2 = "Processor Architecture: " +GETENV("PROCESSOR_ARCHITECTURE")+CHR(13) >>value3 = "Processor Identifier: " +GETENV("PROCESSOR_IDENTIFIER")+CHR(13) >>value4 = "Processor Level: " +GETENV("PROCESSOR_LEVEL")+CHR(13) >>value5 = "Processor Revision: " +GETENV("PROCESSOR_REVISION")+CHR(13) >>newvalue = value1+value2+value3+value4+value5 >>RETURN newvalue >>************************* >>