Tengo muchos videos almacenados en mi disco duro. Los que son de DVD o de menor calidad (480p, tamaño máximo 7 GB), me gustaría abrirlos usando VLC. Los que son de calidad HD (720p, 1080p, tamaño superior a 7 GB), me gustaría abrirlos usando PowerDVD.
Todos los archivos tienen la misma extensión (.mkv). ¿Es posible programar la asociación de archivos en Windows, de modo que primero mire el tipo de archivo (mkv en este caso) y luego también el tamaño del archivo? Debería usar automáticamente vlc o PowerDVD para archivos mkv, según su tamaño.
Avíseme si tal ajuste es posible.
Respuesta1
Tendrá que asociar la extensión MKV con un archivo por lotes o un script de PowerShell/VB que a su vez realiza la verificación del tamaño del archivo e invoca la aplicación adecuada.
A continuación se explica cómo hacerlo con un archivo por lotes:
Abiertoregedit, navegue hasta
HKEY_CLASSES_ROOT\.mkv
y observe el(Por defecto)valor. Este es elID de programa. Supongamos que esarchivo mkv.Navegue
HKEY_CLASSES_ROOT\mkvfile\shell\open\command
y modifique el(Por defecto)valor a algo como"D:\MKVSizeCheck.bat" "%1"
.Ahora cree el
D:\MKVSizeCheck.bat
archivo por lotes con el siguiente contenido:if %~z1 leq 524288000 ( start "" /max "C:\Program Files\VLC\VLC.exe" "%~1" ) else ( start "" /max "C:\Program Files\PowerDVD\PowerDVD.exe" "%~1" )
Aquí se explica cómo hacerlo con VBScript:
Lo mismo que arriba.
Navegue
HKEY_CLASSES_ROOT\mkvfile\shell\open\command
y modifique el(Por defecto)valor a algo comowscript //B "D:\MKVSizeCheck.vbs" "%1"
.Ahora cree el
D:\MKVSizeCheck.vbs
archivo con el siguiente contenido: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 las rutas según sea necesario, obviamente. Además, el código anterior establece 500 MB (= 524288000 bytes) como umbral, así que cámbielo también según sus necesidades (aunque es posible que valores muy grandes solo sean posibles en VBScript).
Nota #2: Siempre puedes usar una utilidad comoTiposdearchivohombresiga los pasos 1 y 2 si no está seguro de editar manualmente el registro.
Nota #3: El uso de un archivo por lotes hará que parpadee una ventana de la consola, lo que puede resultar irritante. Ahora esto se puede ocultar usando algo comoInicio ocultoo VBScript, pero ¿por qué molestarse cuando es mejor usar VBScript directamente en primer lugar?