Вам нужно будет связать расширение MKV с командным файлом или сценарием PowerShell/VB, который, в свою очередь, выполняет проверку размера файла и вызывает соответствующее приложение.
Вот как это сделать с помощью командного файла:
Откройте regedit, перейдите к HKEY_CLASSES_ROOT\.mkv
и запомните значение (по умолчанию) . Это ProgID . Давайте предположим, что это mkvfile .
Перейдите к HKEY_CLASSES_ROOT\mkvfile\shell\open\command
и измените значение (по умолчанию) на что-то вроде "D:\MKVSizeCheck.bat" "%1"
.
Теперь создайте пакетный файл D:\MKVSizeCheck.bat
со следующим содержимым:
if %~z1 leq 524288000 (
start "" /max "C:\Program Files\VLC\VLC.exe" "%~1"
) else (
start "" /max "C:\Program Files\PowerDVD\PowerDVD.exe" "%~1"
)
Вот как это сделать с помощью VBScript:
То же, что и выше.
Перейдите к HKEY_CLASSES_ROOT\mkvfile\shell\open\command
и измените значение (по умолчанию) на что-то вроде wscript //B "D:\MKVSizeCheck.vbs" "%1"
.
Теперь создайте файл D:\MKVSizeCheck.vbs
со следующим содержимым:
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
Примечание № 1: Измените пути, как требуется, очевидно. Также приведенный выше код устанавливает 500 МБ (= 524288000 байт) в качестве порога, поэтому измените его также в соответствии с вашими потребностями (хотя очень большие значения могут быть возможны только в VBScript).
Примечание № 2: Вы всегда можете использовать утилиту, такую как FileTypesMan, для выполнения шагов 1-2, если вы не уверены в том, что редактирование реестра вручную.
Примечание № 3: Использование командного файла вызовет мигание окна консоли, что может раздражать. Теперь это можно скрыть, используя что-то вроде Hidden Start или VBScript, но зачем беспокоиться, когда лучше сразу использовать VBScript.