Você terá que associar a extensão MKV a um arquivo em lotes ou a um script 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:
Abra o regedit , navegue HKEY_CLASSES_ROOT\.mkv
e observe o valor (Padrão) . Este é o ProgID . Vamos supor que seja o mkvfile .
Navegue HKEY_CLASSES_ROOT\mkvfile\shell\open\command
e modifique o valor (Padrão) para algo semelhante "D:\MKVSizeCheck.bat" "%1"
.
Agora crie o D:\MKVSizeCheck.bat
arquivo de 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 o VBScript:
O mesmo que acima.
Navegue HKEY_CLASSES_ROOT\mkvfile\shell\open\command
e modifique o valor (Padrão) para algo semelhante wscript //B "D:\MKVSizeCheck.vbs" "%1"
.
Agora crie o D:\MKVSizeCheck.vbs
arquivo 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 nº 2: sempre é possível usar um utilitário como o FileTypesMan para executar as etapas 1 e 2 caso não tenha certeza sobre a edição manual do registro.
Observação nº 3: o uso de 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 preocupar quando é melhor usar diretamente o VBScript?