Associação de arquivos do Windows com base no tipo de arquivo e, em seguida, no tamanho

1

Eu tenho muitos vídeos armazenados no meu disco rígido. Os que são de dvd ou de qualidade inferior (480p, tamanho máximo 7GB), gostaria de abrir usando vlc. Os que são de qualidade HD (720p, 1080p, tamanho maior que 7GB), eu gostaria de abrir usando o PowerDVD.

Todos os arquivos têm a mesma extensão (.mkv). É possível programar a associação de arquivos no Windows, de modo que primeiro analise o tipo de arquivo (mkv, neste caso) e, em seguida, também o tamanho do arquivo. Ele deve usar automaticamente vlc ou PowerDVD para arquivos mkv, com base em seu tamanho.

Por favor, deixe-me saber se tal ajuste é possível.

    
por Sujay Phadke 30.05.2015 / 09:02

1 resposta

5

Você terá que associar a extensão MKV a um arquivo em lotes ou a um script do PowerShell / VB que, por sua vez, executa a verificação do tamanho do arquivo e chama o aplicativo apropriado.

Veja como fazer isso com um arquivo em lotes:

  1. Abra regedit , navegue até HKEY_CLASSES_ROOT\.mkv e observe o valor (Padrão) . Este é o ProgID . Vamos supor que seja mkvfile .

  2. Navegue até HKEY_CLASSES_ROOT\mkvfile\shell\open\command e modifique o valor (Padrão) para algo como "D:\MKVSizeCheck.bat" "%1" .

  3. Agora crie o arquivo em lote D:\MKVSizeCheck.bat com o seguinte conteúdo:

    if %~z1 leq 524288000 (
        start "" /max "C:\Program Files\VLC\VLC.exe" "%~1"
    ) else (
        start "" /max "C:\Program Files\PowerDVD\PowerDVD.exe" "%~1"
    )
    

Veja como fazer isso com o VBScript:

  1. O mesmo que acima.

  2. Navegue até HKEY_CLASSES_ROOT\mkvfile\shell\open\command e modifique o valor (Padrão) para algo como wscript //B "D:\MKVSizeCheck.vbs" "%1" .

  3. Agora crie o arquivo D:\MKVSizeCheck.vbs com o seguinte conteúdo:

    set objArgs = WScript.Arguments
    set objShell = WScript.CreateObject("WScript.Shell")
    set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    if objFSO.GetFile(objArgs.Item(0)).Size <= 524288000 then
        objShell.Run """C:\Program Files\VLC\VLC.exe"" """ & objArgs.Item(0) & """", 3, false
    else
        objShell.Run """C:\Program Files\PowerDVD\PowerDVD.exe"" """ & objArgs.Item(0) & """", 3, false
    end if
    

Nota # 1: Modifique os caminhos conforme necessário, obviamente. Além disso, o código acima define 500MB (= 524288000 bytes) como o limite, então mude isso também de acordo com suas necessidades (valores muito grandes podem ser possíveis apenas no VBScript).

Observação 2: sempre é possível usar um utilitário como FileTypesMan para executar as etapas de 1 a 2 caso você ' não tem certeza sobre a edição manual do registro.

Observação 3: usar um arquivo em lotes fará com que a janela do console pisque, o que pode ser irritante. Agora isso pode ser escondido usando algo como Hidden Start ou VBScript, mas por que se incomodar quando é melhor usar diretamente o VBScript em o primeiro lugar.

    
por 30.05.2015 / 10:43