У меня на жестком диске хранится много видео. Те, которые в формате DVD или более низкого качества (480p, максимальный размер 7 ГБ), я хотел бы открыть с помощью vlc. Те, которые в качестве HD (720p, 1080p, размер больше 7 ГБ), я хотел бы открыть с помощью PowerDVD.
Все файлы имеют одинаковое расширение (.mkv). Возможно ли запрограммировать ассоциацию файлов в Windows так, чтобы она сначала смотрела на тип файла (в данном случае mkv), а затем на размер файла. Она должна автоматически использовать vlc или PowerDVD для файлов mkv в зависимости от их размера.
Пожалуйста, дайте мне знать, если такая корректировка возможна.
решение1
Вам придется связать расширение MKV с пакетным файлом или скриптом PowerShell/VB, который, в свою очередь, выполнит проверку размера файла и вызовет соответствующее приложение.
Вот как это сделать с помощью пакетного файла:
Открытьregedit, перейдите к
HKEY_CLASSES_ROOT\.mkv
и отметьте(По умолчанию)значение. ЭтоProgID. Предположим, что этоmkvфайл.Перейдите
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: Вы всегда можете воспользоваться такой утилитой, какТипы файловManвыполнить шаги 1-2, если вы не уверены в ручном редактировании реестра.
Примечание №3: Использование пакетного файла приведет к миганию окна консоли, что может раздражать. Теперь это можно скрыть, используя что-то вродеСкрытый стартили VBScript, но зачем беспокоиться, если лучше сразу использовать VBScript.