; IF setconsole("hide") ; ENDIF ; ; NT/95 cdrom & local drive check by registry - Kixtart 3.62, 3.63, 4.00 ; ; (c) scripting@wanadoo.nl - 2000, 2001 ; ; vs 2.02 - program ; ; 1.00 (20000815) original version - read disk/cdrom information ; 2.00 (20010401) - kixtart 2001 beta1 compliancy ; - add user information about output generation ; 2.01 (20010701) - using %tmp% value ; - standardization of $debug_file value ; 2.02 (20011120) - suppress SetConsole("hide") ; $prgrm_version="2.02" ; $tmp_directory=ExpandEnvironmentVars("%tmp%") IF (substr($tmp_directory,len($tmp_directory),1) = "\") $tmp_directory=substr($tmp_directory,1,len($tmp_directory)-1) ENDIF ; --------------------------------------------------------------------------- ; - site defined settings - ; --------------------------------------------------------------------------- $debug_mode="yes" ; - no/yes - $debug_file=$tmp_directory+"\kix-info.log" IF ($debug_mode = "yes") IF (RedirectOutput($debug_file,1) = 0) ENDIF ENDIF ; --------------------------------------------------------------------------- ; - - ; --------------------------------------------------------------------------- IF (@inwin = 1) $NT_mode="yes" ELSE $NT_mode="no" ENDIF ; $fix_disk="" $fix_cdrom="" ; ----- HKLM hardware configuration - local hardware - 95 ----- $execute_mode="yes" IF ($NT_mode = "yes") $execute_mode="no" ENDIF IF ($execute_mode = "yes") $ikey="HKEY_LOCAL_MACHINE\Enum\SCSI" ; - 95 - IF (ExistKey($ikey) = 0) $completed="no" $index=0 DO $icode=ENUMKEY($ikey, $index) IF (@error = 0) IF ($debug_mode = "yes") ? $ikey+"\"+$icode ENDIF IF (len($icode) <> 0) $completed1="no" $index1=0 $ikey1=$ikey+"\"+$icode DO $icode1=ENUMKEY($ikey1, $index1) IF (@error = 0) $ikey2=$ikey1+"\"+$icode1 $icode2=ReadValue($ikey2, "Class") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " Class ="+$icode2 ENDIF IF (LCASE($icode2) = "cdrom") $fix_cdrom=$fix_cdrom+ReadValue($ikey2, "CurrentDriveLetterAssignment") ENDIF $icode2=ReadValue($ikey2, "CurrentDriveLetterAssignment") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " CurrentDriveLetterAssignment="+$icode2 ENDIF ENDIF $icode2=ReadValue($ikey2, "UserDriveLetterAssignment") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " User DriveLetterAssignment="+$icode2 ENDIF ENDIF $icode2=ReadValue($ikey2, "DeviceDesc") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " DeviceDesc ="+$icode2 ENDIF ENDIF $icode2=ReadValue($ikey2, "IDEMaster") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " IDEMaster ="+$icode2 ENDIF ENDIF ENDIF ELSE $completed1="yes" ENDIF $index1=$index1+1 UNTIL ($completed1 = "yes") ENDIF ELSE $completed="yes" ENDIF $index=$index+1 UNTIL ($completed = "yes") ENDIF ; ----- HKLM hardware configuration - local hardware - NT ----- $ikey="HKEY_LOCAL_MACHINE\Enum\ESDI" ; - 95 - IF (ExistKey($ikey) = 0) $completed="no" $index=0 DO $icode=ENUMKEY($ikey, $index) IF (@error = 0) IF ($debug_mode = "yes") ? $ikey+"\"+$icode ENDIF IF (len($icode) <> 0) AND (INSTR(LCASE($icode),"generic") <> 0) $completed1="no" $index1=0 $ikey1=$ikey+"\"+$icode DO $icode1=ENUMKEY($ikey1, $index1) IF (@error = 0) $ikey2=$ikey1+"\"+$icode1 $icode2=ReadValue($ikey2, "Class") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " Class ="+$icode2 ENDIF IF (LCASE($icode2) = "diskdrive") $fix_disk=$fix_disk+ReadValue($ikey2, "CurrentDriveLetterAssignment") ENDIF $icode2=ReadValue($ikey2, "CurrentDriveLetterAssignment") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " CurrentDriveLetterAssignment="+$icode2 ENDIF ENDIF $icode2=ReadValue($ikey2, "UserDriveLetterAssignment") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " User DriveLetterAssignment="+$icode2 ENDIF ENDIF $icode2=ReadValue($ikey2, "DeviceDesc") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " DeviceDesc ="+$icode2 ENDIF ENDIF $icode2=ReadValue($ikey2, "IDEMaster") IF (@error = 0) ENDIF IF (len($icode2) <> 0) IF ($debug_mode = "yes") ? " IDEMaster ="+$icode2 ENDIF ENDIF ENDIF ELSE $completed1="yes" ENDIF $index1=$index1+1 UNTIL ($completed1 = "yes") ENDIF ELSE $completed="yes" ENDIF $index=$index+1 UNTIL ($completed = "yes") ENDIF $fix_cdrom=LCASE($fix_cdrom) $fix_disk=LCASE($fix_disk) IF ($debug_mode = "yes") ? " summary: User Disk ="+$fix_disk ? " CDrom="+$fix_cdrom ENDIF IF (len($fix_disk) <> 0) ? "disk=("+$fix_disk+")" ELSE ? "disk=(?)" ENDIF IF (len($fix_cdrom) <> 0) ? "cdrom=("+$fix_cdrom+")" ELSE ? "cdrom=(?)" ENDIF ENDIF ; ----- HKLM services configuration - NT ----- ; - CDrom active ? - NT: IDE / remark: disk-drives only locatable by HKCC registry. not readable by kixtart - $execute_mode="yes" IF ($NT_mode <> "yes") $execute_mode="no" ENDIF IF ($execute_mode = "yes") IF ($NT_mode = "yes") $ikey="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_CDROM\0000\Control" IF (ExistKey($ikey) = 0) ; - NT - $ivalue=ReadValue($ikey, "ActiveService") IF (@error = 0) ; $ikey="HKEY_LOCAL_MACHINE\SYSTEM\DISK" IF (ExistKey($ikey) = 0) $ivalue=ReadValue($ikey, "\Device\CdRom0") IF (@error = 0) $fix_cdrom=LCASE(substr($ivalue,1,1)) ENDIF ENDIF ENDIF ENDIF ENDIF ; IF (len($fix_cdrom) <> 0) ? "cdrom=("+$fix_cdrom+")" ELSE ? "cdrom=(?)" ENDIF ENDIF ; IF (RedirectOutput("CON",1) = 0) ENDIF IF ($debug_mode = "yes") ? "Informative CDrom.KIX: create debug list '"+$debug_file+"'" ELSE ? "Informative CDrom.KIX: no creation of debug list '"+$debug_file+"'" ENDIF