#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 *************************