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

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

Tenho muitos vídeos armazenados no meu disco rígido. Aqueles que são de dvd ou qualidade inferior (480p, tamanho máximo 7GB), gostaria de abrir usando vlc. Aqueles com qualidade HD (720p, 1080p, tamanho maior que 7GB), 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 forma que primeiro observe o tipo de arquivo (mkv neste caso) e depois 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.

Responder1

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

Veja como fazer isso com um arquivo em lote:

  1. Abrirregedit, navegue até HKEY_CLASSES_ROOT\.mkve observe o(Padrão)valor. Isto é oID do programa. Vamos supor que sejaarquivo mkv.

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

  3. Agora crie o D:\MKVSizeCheck.batarquivo em lote 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 VBScript:

  1. O mesmo que acima.

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

  3. Agora crie o D:\MKVSizeCheck.vbsarquivo 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 nº 1: Modifique os caminhos conforme necessário, obviamente. Além disso, o código acima define 500 MB (= 524288000 bytes) como limite, portanto, altere-o também de acordo com suas necessidades (no entanto, valores muito grandes podem ser possíveis apenas em VBScript).

Nota nº 2: você sempre pode usar um utilitário comoFileTypesManexecute as etapas 1 a 2 se não tiver certeza sobre como editar manualmente o registro.

Nota nº 3: Usar um arquivo em lote fará com que uma janela do console pisque, o que pode ser irritante. Agora isso pode ser escondido usando algo comoInício ocultoou VBScript, mas por que se preocupar quando é melhor usar VBScript diretamente?

informação relacionada