Windows 7 O congelador de TV gravado congela

0

Na minha biblioteca "Recorded TV", na qual eu armazeno os filmes gravados pelo Windows Media Center da minha placa sintonizadora de TV, tenho cerca de 400 filmes (arquivos .dvr-ms e .wtv), quase 2,4 TB de dados. Quando tento abrir essa pasta no Windows Explorer, o uso da RAM chega a 100% e o computador inteiro congela até que, eventualmente, consegui fechar a pasta, de uma forma ou de outra. (O que é um grande feito, já que o Windows 7 geralmente é muito estável.)

Este é um bug conhecido, com uma solução conhecida? Não é grande coisa, pois ainda posso gerenciar os arquivos a partir do Windows Media Center ou usando o prompt de comando, mas é irritante. De fato, às vezes, quero assistir aos metadados associados a um filme sem iniciar o Media Center. É claro que posso escrever um pequeno aplicativo Win32 chamando ShellExecuteEx com o verbo properties , mas isso é 'exagero', não é?

Certamente, em 2013, o Windows Explorer pode abrir um diretório com algumas centenas de arquivos?

    
por Andreas Rejbrand 11.03.2013 / 00:29

2 respostas

1

Dependendo do número de arquivos, da quantidade de metadados a serem extraídos, de quão bem a extensão do shell está codificada (seja ela multitarefa ou não, possui vazamentos de memória, etc.), quanto RAM livre existe e assim por diante, ativar a exibição de miniaturas no Explorer ou ativar a exibição de várias colunas que exigem a extração de metadados de cada arquivo pode prejudicar o sistema.

Otimizar a pasta para Itens gerais (via folder Properties / Customize tab ) é uma maneira de garantir que o Explorer permaneça razoavelmente responsivo, mesmo com centenas ou milhares de arquivos em uma pasta.

    
por 11.03.2013 / 18:54
1

Uma solução parcial é garantir que todos os recursos necessários sejam acessados através do comando promt. Por exemplo, eu escrevi este simples programa Delphi (e coloquei o EXE na pasta System32 ):

program shprop;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows,
  ShellAPI;

const
  SEE_MASK_NOASYNC = $100;

var
  shi: TShellExecuteInfo;
begin

  try

    if ParamCount = 0 then Exit;

    FillChar(shi, sizeof(shi), 0);
    shi.cbSize := sizeof(shi);
    shi.lpFile := PChar(ParamStr(1));
    shi.lpVerb := 'properties';
    shi.fMask := SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI
      or SEE_MASK_NOASYNC or SEE_MASK_NOCLOSEPROCESS;
    if ShellExecuteEx(@shi) then
    begin
      Writeln('Press Return to continue.');
      Readln;
    end
    else
      Writeln(SysErrorMessage(GetLastError));

  except
    on E: Exception do
      Writeln(E.Classname, ': ', E.Message);
  end;

end.

Agora posso simplesmente escrever shprop myfile.wtv no prompt de comando para mostrar sua caixa de diálogo de propriedades.

    
por 29.03.2013 / 16:04