|  | @@ -405,20 +405,30 @@ var
 | 
											
												
													
														|  |    Reg: TRegistry;
 |  |    Reg: TRegistry;
 | 
											
												
													
														|  |    Folder: TSpecialFolder;
 |  |    Folder: TSpecialFolder;
 | 
											
												
													
														|  |    Drives: string;
 |  |    Drives: string;
 | 
											
												
													
														|  | 
 |  | +  DrivesDataInfo: TRegDataInfo;
 | 
											
												
													
														|  | 
 |  | +const
 | 
											
												
													
														|  | 
 |  | +  NoDrivesValueName = 'NoDrives';
 | 
											
												
													
														|  |  begin
 |  |  begin
 | 
											
												
													
														|  |    AppLog('Loading drives');
 |  |    AppLog('Loading drives');
 | 
											
												
													
														|  | -  FNoDrives := 0;
 |  | 
 | 
											
												
													
														|  |    Reg := TRegistry.Create;
 |  |    Reg := TRegistry.Create;
 | 
											
												
													
														|  | 
 |  | +  FNoDrives := 0;
 | 
											
												
													
														|  |    try
 |  |    try
 | 
											
												
													
														|  | -    if Reg.OpenKeyReadOnly('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer') Then
 |  | 
 | 
											
												
													
														|  | -       Reg.ReadBinaryData('NoDrives', FNoDrives, SizeOf(FNoDrives));
 |  | 
 | 
											
												
													
														|  | -  except
 |  | 
 | 
											
												
													
														|  | -    try
 |  | 
 | 
											
												
													
														|  | -      FNoDrives := Reg.ReadInteger('NoDrives');
 |  | 
 | 
											
												
													
														|  | -    except
 |  | 
 | 
											
												
													
														|  | 
 |  | +    if Reg.OpenKeyReadOnly('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer') and
 | 
											
												
													
														|  | 
 |  | +       Reg.GetDataInfo(NoDrivesValueName, DrivesDataInfo) then
 | 
											
												
													
														|  | 
 |  | +    begin
 | 
											
												
													
														|  | 
 |  | +      if (DrivesDataInfo.RegData = rdBinary) and (DrivesDataInfo.DataSize >= SizeOf(FNoDrives)) then
 | 
											
												
													
														|  | 
 |  | +      begin
 | 
											
												
													
														|  | 
 |  | +        Reg.ReadBinaryData(NoDrivesValueName, FNoDrives, SizeOf(FNoDrives));
 | 
											
												
													
														|  | 
 |  | +      end
 | 
											
												
													
														|  | 
 |  | +        else
 | 
											
												
													
														|  | 
 |  | +      if DrivesDataInfo.RegData = rdInteger then
 | 
											
												
													
														|  | 
 |  | +      begin
 | 
											
												
													
														|  | 
 |  | +        FNoDrives := Reg.ReadInteger(NoDrivesValueName);
 | 
											
												
													
														|  | 
 |  | +      end;
 | 
											
												
													
														|  |      end;
 |  |      end;
 | 
											
												
													
														|  | 
 |  | +  finally
 | 
											
												
													
														|  | 
 |  | +    Reg.Free;
 | 
											
												
													
														|  |    end;
 |  |    end;
 | 
											
												
													
														|  | -  Reg.Free;
 |  | 
 | 
											
												
													
														|  |    AppLog(Format('NoDrives mask: %d', [Integer(FNoDrives)]));
 |  |    AppLog(Format('NoDrives mask: %d', [Integer(FNoDrives)]));
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    FDesktop := nil;
 |  |    FDesktop := nil;
 |