Asociación masiva de extensiones a programas

Iniciado por Herchi, 17 Abril 2021, 11:40 AM

0 Miembros y 1 Visitante están viendo este tema.

Herchi

Es posible asociar masivamente extensiones a programas?

¿.avi, .mp4. .wmv a potPlayer? programas PORTABLES, claro

gracias

Serapis

Qué quieres decir con 'masivamente'?.

El programa al que se asocie una extensión debe poder 'manejarlo', si no no tiene sentido... marcará errores al intentar abrirlo (o bien lo deshecha silenciosamente).

Ten en cuenta que al asociar la apertura con un programa, dejará de estar asociado con el que estaba previamente, luego si el nuevo falla, y no recuerdas qué otro programa estaba asociado te quedarás sin poder abrirlo. Luego conviene que antes de que hagas ciertas cosas, hagas copia de seguridad del registro o por lo menos de las claves que vayas a tocar... Si no sabes bien como, al menos crea un punto de restauración.

EdePC

Desde el Panel de Control > Programas > Programas predeterminados, puedes hacerlo. PERO como estás en la sección de Scripting supongo que quieres un Script que lo haga :xD

Básicamente primero tienes que crear un Identificador para el programa, luego asociar las extensiones a ese Identificador.

- Por ejemplo si yo tengo un programa llamado HxD en mi escritorio y quiero crear un Identificador llamado "edefile" que apunte a ese programa:

Código (dos) [Seleccionar]
FType edefile="C:\Users\EdSon\Desktop\HxD.exe" "%1"

-- El "%1" es importante

- Luego hay que asociar las extensiones a ese identificador, por ejemplo si quiero que la extensión ".ede" este asociado al identificador que cree antes:

Código (dos) [Seleccionar]
Assoc .ede=edefile

-- Así de simple, claro que puedes asociar más extensiones a un mismo identificador

Código (dos) [Seleccionar]
Assoc .ede=edefile
Assoc .edp=edefile
Assoc .epc=edefile


- Al final todos los archivos con extensión .ede, .edp y .epc se abrirán con mi programa HxD.exe

Nota: Todo lo tienes que ejecutar como Administrador.

Herchi

Cita de: EdePC en 18 Abril 2021, 03:02 AM
Desde el Panel de Control > Programas > Programas predeterminados, puedes hacerlo. PERO como estás en la sección de Scripting supongo que quieres un Script que lo haga :xD

Básicamente primero tienes que crear un Identificador para el programa, luego asociar las extensiones a ese Identificador.

- Por ejemplo si yo tengo un programa llamado HxD en mi escritorio y quiero crear un Identificador llamado "edefile" que apunte a ese programa:

Código (dos) [Seleccionar]
FType edefile="C:\Users\EdSon\Desktop\HxD.exe" "%1"

-- El "%1" es importante

- Luego hay que asociar las extensiones a ese identificador, por ejemplo si quiero que la extensión ".ede" este asociado al identificador que cree antes:

Código (dos) [Seleccionar]
Assoc .ede=edefile

-- Así de simple, claro que puedes asociar más extensiones a un mismo identificador

Código (dos) [Seleccionar]
Assoc .ede=edefile
Assoc .edp=edefile
Assoc .epc=edefile


- Al final todos los archivos con extensión .ede, .edp y .epc se abrirán con mi programa HxD.exe

Nota: Todo lo tienes que ejecutar como Administrador.
gracias lo he intentado pero no noto ninguna diferencia



Código (dos) [Seleccionar]

C:\WINDOWS\system32>FType imagenes="D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" "%1"
imagenes="D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" "%1"

C:\WINDOWS\system32>Assoc .jpeg=imagenes
.jpeg=imagenes


Ahora intento abrir un archivo "foto.jpeg" y me dice Windows con qué programa abrirlo. :(

Danielㅤ

Hola, yo por las dudas te recomendaría 2 cosas:

1. Usar otro nombre del identificador, imagenes puede ser algo reservado del sistema, aunque no creo porque estás usando la palabra en español pero por las dudas.

2. Ese programa xnviewmp.exe lo ubicaría en la unidad C, ya que todos los programas deben estar ubicados en la unidad del sistema.

Estas ejecutando esos comandos con permiso de Administrador?


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

EdePC

CitarAhora intento abrir un archivo "foto.jpeg" y me dice Windows con qué programa abrirlo. :(

Eso es porque no ha encontrado "D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" Revisa que esté bien escrito, es más, selecciónalo y cópialo para luego pegarlo y presionar Enter, debería abrir tu programa, sino, es que no lo encuentra:

Código (dos) [Seleccionar]
"D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe"

Danielㅤ

Cita de: EdePC en 18 Abril 2021, 19:13 PM
Eso es porque no ha encontrado "D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" Revisa que esté bien escrito, es más, selecciónalo y cópialo para luego pegarlo y presionar Enter, debería abrir tu programa, sino, es que no lo encuentra:

Código (dos) [Seleccionar]
"D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe"

Yo escribiría la ruta tabulandola, de esa manera me aseguraría de no errarle al programa destino.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

Herchi

1) he ejecutado el cmd como administrador
2) lo he tabulado para llegar al exe
3) he movido el portable a c:
4) he usado dos alias diferentes.

NADA :(

he hecho un vídeo.
https://vimeo.com/538440733

gracias

EdePC

Hay alguito más para explicar acerca de las asociaciones:

1. FType y Assoc funcionan a nivel PC (HKLM HKCR) y no de Usuario (HKCU), PERO el Sistema le hace más caso al nivel Usuario.

2. A nivel de Usuario también existe una Caché y una Lista de preferencias en las Asociaciones.

3. Seguridad de preferencias de asociaciones

Empecemos con la primera parte, FType y Assoc requieren permisos de Administrador justo por esa razón, al final no hacen más que crear ciertas Claves en el Registro de Windows, ahora bien, uno mismo puede crear las Claves a mano y mejor si lo hace a nivel de Usuario ya que no será necesario permisos de administrador

- Los equivalentes a FType y Assoc serían:

Código (dos) [Seleccionar]
Reg Add HKCU\SOFTWARE\Classes\fotis\Shell\Open\Command /VE /D "\"C:\XnViewMP\xnviewmp.exe\" \"%1\"" /F
Reg Add HKCU\SOFTWARE\Classes\.jpeg /VE /D fotis /F
TsKill explorer


- El último TsKill explorer es para que se reinicie el Explorador de Windows y tome efecto los cambios hechos.

- Como se puede ver es alguito más complejo pero si un Programa ha hecho cambios a nivel de Usuario, el sistema a tomar esos cambios en lugar de los del nivel PC

PERO, primero yo probaría vaciando la Lista de Preferencias de asociaciones (2do punto), es decir, para tu ejemplo tal como lo vienes haciendo sería:

Código (dos) [Seleccionar]
FType fotis="C:\XnViewMP\xnviewmp.exe" "%1"
Assoc .jpeg=fotis
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F


Así es más sencillo, ahí se usa la última línea para eliminar la caché y preferencias por defecto de las asociaciones del usuario actual. Ahora solo considerar el 3er punto, la seguridad de las preferencias de asociaciones, esto ya es más complicado ya que si el usuario manualmente a seleccionado un archivo con cierta extensión y le ha dado click derecho > abrir con > Elegir otra aplicación, y ahí a seleccionado un programa y marcado el check Abrir siempre .... En este caso se agrega cierta seguridad para que no se pueda eliminar fácilmente dicha preferencia, entonces notaras un error al intentar la tercera línea anterior, algo como: Acceso denegado o que solo se ha podido borrar una parte y no todo.

Herchi

#9
Cita de: EdePC en 19 Abril 2021, 01:27 AM
Hay alguito más para explicar acerca de las asociaciones:

1. FType y Assoc funcionan a nivel PC (HKLM HKCR) y no de Usuario (HKCU), PERO el Sistema le hace más caso al nivel Usuario.

2. A nivel de Usuario también existe una Caché y una Lista de preferencias en las Asociaciones.

3. Seguridad de preferencias de asociaciones

Empecemos con la primera parte, FType y Assoc requieren permisos de Administrador justo por esa razón, al final no hacen más que crear ciertas Claves en el Registro de Windows, ahora bien, uno mismo puede crear las Claves a mano y mejor si lo hace a nivel de Usuario ya que no será necesario permisos de administrador

- Los equivalentes a FType y Assoc serían:

Código (dos) [Seleccionar]
Reg Add HKCU\SOFTWARE\Classes\fotis\Shell\Open\Command /VE /D "\"C:\XnViewMP\xnviewmp.exe\" \"%1\"" /F
Reg Add HKCU\SOFTWARE\Classes\.jpeg /VE /D fotis /F
TsKill explorer


- El último TsKill explorer es para que se reinicie el Explorador de Windows y tome efecto los cambios hechos.

- Como se puede ver es alguito más complejo pero si un Programa ha hecho cambios a nivel de Usuario, el sistema a tomar esos cambios en lugar de los del nivel PC

PERO, primero yo probaría vaciando la Lista de Preferencias de asociaciones (2do punto), es decir, para tu ejemplo tal como lo vienes haciendo sería:

Código (dos) [Seleccionar]
FType fotis="C:\XnViewMP\xnviewmp.exe" "%1"
Assoc .jpeg=fotis
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F


Así es más sencillo, ahí se usa la última línea para eliminar la caché y preferencias por defecto de las asociaciones del usuario actual. Ahora solo considerar el 3er punto, la seguridad de las preferencias de asociaciones, esto ya es más complicado ya que si el usuario manualmente a seleccionado un archivo con cierta extensión y le ha dado click derecho > abrir con > Elegir otra aplicación, y ahí a seleccionado un programa y marcado el check Abrir siempre .... En este caso se agrega cierta seguridad para que no se pueda eliminar fácilmente dicha preferencia, entonces notaras un error al intentar la tercera línea anterior, algo como: Acceso denegado o que solo se ha podido borrar una parte y no todo.

1º he intentado el bloque A:
Reg Add HKCU\SOFTWARE\Classes\fotis\Shell\Open\Command /VE /D "\"C:\XnViewMP\xnviewmp.exe\" \"%1\"" /F
Reg Add HKCU\SOFTWARE\Classes\.jpeg /VE /D fotis /F
TsKill explorer

2º no puedo abrir el jpeg (me pregunta con qué programa de Windows abrir esa extensión)

3º pruebo el bloque B:
FType fotis="C:\XnViewMP\xnviewmp.exe" "%1"
Assoc .jpeg=fotis
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F

4º no puedo abrir el jpeg (me pregunta con qué programa de Windows abrir esa extensión)

5º vuelvo a ejecutar el bloque A pero me dice lo mismo



os pego aquí lo que me dijo la consola, especialmente hay una asignación parcial sospechosa:

Microsoft Windows [Versión 10.0.19042.928]
(c) Microsoft Corporation. Todos los derechos reservados.

C:\WINDOWS\system32>Reg Add HKCU\SOFTWARE\Classes\fotis\Shell\Open\Command /VE /D "\"C:\XnViewMP\xnviewmp.exe\" \"%1\"" /F
La operación se completó correctamente.

C:\WINDOWS\system32>Reg Add HKCU\SOFTWARE\Classes\.jpeg /VE /D fotis /F
La operación se completó correctamente.

C:\WINDOWS\system32>TsKill explorer

C:\WINDOWS\system32>FType fotis="C:\XnViewMP\xnviewmp.exe" "%1"
fotis="C:\XnViewMP\xnviewmp.exe" "%1"

C:\WINDOWS\system32>Assoc .jpeg=fotis
.jpeg=fotis

C:\WINDOWS\system32>Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F
ERROR: La solicitud de eliminación se completó parcialmente.

C:\WINDOWS\system32>Reg Add HKCU\SOFTWARE\Classes\fotis\Shell\Open\Command /VE /D "\"C:\XnViewMP\xnviewmp.exe\" \"%1\"" /F
La operación se completó correctamente.

C:\WINDOWS\system32>Reg Add HKCU\SOFTWARE\Classes\.jpeg /VE /D fotis /F
La operación se completó correctamente.

C:\WINDOWS\system32>TsKill explorer

C:\WINDOWS\system32>



si queréis hago un video demostrativo y lo muestro en vimeo o algo así :)