1

У меня есть много видео, хранящихся на моем жестком диске. Те, которые имеют DVD или более низкое качество (480p, максимальный размер 7 ГБ), я хотел бы открыть с помощью vlc. Те, которые имеют качество HD (720p, 1080p, размер больше 7 ГБ), я хотел бы открыть с помощью PowerDVD.

Все файлы имеют одинаковое расширение (.mkv). Можно ли запрограммировать сопоставление файлов в Windows таким образом, чтобы он сначала смотрел на тип файла (в данном случае mkv), а затем также на размер файла. Он должен автоматически использовать VLC или PowerDVD для файлов MKV, в зависимости от его размера.

Пожалуйста, дайте мне знать, если такая настройка возможна.

1 ответ1

5

Вам нужно будет связать расширение MKV с командным файлом или сценарием PowerShell/VB, который, в свою очередь, выполняет проверку размера файла и вызывает соответствующее приложение.

Вот как это сделать с помощью командного файла:

  1. Откройте regedit, перейдите к HKEY_CLASSES_ROOT\.mkv и запомните значение (по умолчанию) . Это ProgID . Давайте предположим, что это mkvfile .

  2. Перейдите к HKEY_CLASSES_ROOT\mkvfile\shell\open\command и измените значение (по умолчанию) на что-то вроде "D:\MKVSizeCheck.bat" "%1" .

  3. Теперь создайте пакетный файл 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:

  1. То же, что и выше.

  2. Перейдите к HKEY_CLASSES_ROOT\mkvfile\shell\open\command и измените значение (по умолчанию) на что-то вроде wscript //B "D:\MKVSizeCheck.vbs" "%1" .

  3. Теперь создайте файл 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .