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.

EdePC

CitarERROR: La solicitud de eliminación se completó parcialmente.

Pues como dije, eso porque el usuario manualmente ha especificado abrir cierta extensión con cierto programa y esto Windows lo asegura no dejando que programas de terceros lo modifique. Tengo entendido que solo se puede restablecer manualmente o con las APIs de Windows.

De momento te voy diciendo que lo puedes arreglar abriendo el RegEdit.exe, buscando: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg y en la subclave UserChoice debe haber un Valor: Hash que identifica inequívocamente al programa que debe abrir esa extensión.

- Pues eso, debes eliminar manualmente HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg y ya todo debe andar perfecto con cualquier método (bastaría FType y Assoc únicamente). Esta "protección" viene desde Windows 8 en adelante

Herchi

Cita de: EdePC en 24 Abril 2021, 17:32 PM
Pues como dije, eso porque el usuario manualmente ha especificado abrir cierta extensión con cierto programa y esto Windows lo asegura no dejando que programas de terceros lo modifique. Tengo entendido que solo se puede restablecer manualmente o con las APIs de Windows.

De momento te voy diciendo que lo puedes arreglar abriendo el RegEdit.exe, buscando: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg y en la subclave UserChoice debe haber un Valor: Hash que identifica inequívocamente al programa que debe abrir esa extensión.

- Pues eso, debes eliminar manualmente HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg y ya todo debe andar perfecto con cualquier método (bastaría FType y Assoc únicamente). Esta "protección" viene desde Windows 8 en adelante


vale, borrando esa zona del registro si que entendió bien el:

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

porque al intentar abrirlo me abre directamente el XnViewMP (y no es necesario que esté en C:).

Me dio por intentar una "reasociación"

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

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


pero nada, intenté con esto:
a) borrando de nuevo lo mismo del registro.
b) C:\WINDOWS\system32>TsKill explorer

me sigue abriendo el XnViewMP :(
Es bastante engorroso todo esto... quizás con un Windows limpio y haciendo un script de todas las extensiones habituales no dé problemas pero por ahora estoy viendo más problemas que virtudes :(

Danielㅤ

#12
Yo a esta carpeta:

XnViewMP (portable) (castellano)

Le quitaria esos paréntesis, es mejor reemplazarlos por por ejemplo un guión bajo:

XnViewMP_portable_castellano

Prueba esa modificación y después nos cuentas si funcionó.

Con respecto a esa reasociación en vez de reasociar una extensión con otro programa, es mejor hacer lo que dijo EdePC, primero borrar esos valores del registro y luego asociar, recuerda que lo que no te funcionaba era justamente el reasociar.


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

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

EdePC

Como bien dices, es posible que tu Windows ya esté "medio sucio", pero puedes quitar las preferencias por defecto del usuario para que se tomen las del Sistema (FType y Assoc) y así tener un entorno limpio:

Código (bash) [Seleccionar]
Reg Delete HKCU\SOFTWARE\Classes\imagenes /F
Reg Delete HKCU\SOFTWARE\Classes\.jpeg /F
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F


- Como siempre el último comando puede fallar si el usuario manualmente a especificado una asociación, en este caso muestra un error y tendrás que eliminar dicha clave a mano desde RegEdit.exe

Bien, una vez limpio el entorno de trabajo de asociaciones ya puedes ejecutar y re-ejecutar tus asociaciones:

Código (bash) [Seleccionar]
FType imagenes="D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" "%1"
Assoc .jpeg=imagenes


- Luego si quieres re-asociar a otro programa basta con simplemente ejecutar:

Código (bash) [Seleccionar]
FType imagenes="D:\Mis documentos\_PORTABLES\PotPlayer (portable) (castellano)\PotPlayerPortable.exe" "%1"
Assoc .jpeg=imagenes


- El Assoc ya no sería necesario porque "no haría nada" PERO en realidad también actualiza el Explorer del Usuario actual, por lo que si sería necesario para actualizar los iconos en lugar de usar TsKill Explorer

Herchi

Cita de: EdePC en 24 Abril 2021, 22:53 PM
Como bien dices, es posible que tu Windows ya esté "medio sucio", pero puedes quitar las preferencias por defecto del usuario para que se tomen las del Sistema (FType y Assoc) y así tener un entorno limpio:

Código (bash) [Seleccionar]
Reg Delete HKCU\SOFTWARE\Classes\imagenes /F
Reg Delete HKCU\SOFTWARE\Classes\.jpeg /F
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F


- Como siempre el último comando puede fallar si el usuario manualmente a especificado una asociación, en este caso muestra un error y tendrás que eliminar dicha clave a mano desde RegEdit.exe

Bien, una vez limpio el entorno de trabajo de asociaciones ya puedes ejecutar y re-ejecutar tus asociaciones:

Código (bash) [Seleccionar]
FType imagenes="D:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" "%1"
Assoc .jpeg=imagenes


- Luego si quieres re-asociar a otro programa basta con simplemente ejecutar:

Código (bash) [Seleccionar]
FType imagenes="D:\Mis documentos\_PORTABLES\PotPlayer (portable) (castellano)\PotPlayerPortable.exe" "%1"
Assoc .jpeg=imagenes


- El Assoc ya no sería necesario porque "no haría nada" PERO en realidad también actualiza el Explorer del Usuario actual, por lo que si sería necesario para actualizar los iconos en lugar de usar TsKill Explorer

El resumen es que he podido o he visto provechoso la asociación así pero he visto problemas que aporto vídeo para mostrarlo
https://vimeo.com/541255411

Código (bash) [Seleccionar]
Reg Delete HKCU\SOFTWARE\Classes\imagenes /F
Reg Delete HKCU\SOFTWARE\Classes\.jpeg /F
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F

esto nunca me ha ido. o al menos siempre daba error, o decía borrado parcial. tenía que borrarlo en el regEdit. De todas maneras no conseguía limpiar dicha asosciación a los ".jpeg", porque cuando intentaba abrir el "jpeg" lo abría con el último programa "recordado". Se supone que al limpiar la asociación Windows me preguntaría con qué programa abrirlo.

A pesar de eso el ir intercambiando esto por el otro:
Código (bash) [Seleccionar]
FType imagenes="D:\Mis documentos\_PORTABLES\PotPlayer (portable) (castellano)\PotPlayerPortable.exe" "%1"
Assoc .jpeg=imagenes

o
Código (bash) [Seleccionar]
FType imagenes="d:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" "%1"
imagenes="d:\Mis documentos\_PORTABLES\XnViewMP (portable) (castellano)\xnviewmp.exe" "%1"

me lo ha cogido bien y es funcional.

Gracias, posiblemente cree un .bat para, si un día formateo Windows, asocie mis numerosos programas portables con las múltiples extensiones.

EdePC

Correcto, resumiendo un poco lo dicho antes solo para recordar que las Asociaciones se pueden hacer a nivel del Sistema con FType y Assoc con permisos de Administrador, pero también se pueden hacer a nivel Usuario sin permisos de Administrador.

El Sistema Operativo le da preferencia al nivel de Usuario y si existen asociaciones a este nivel serán estas las que tome en lugar de las del nivel Sistema. Las siguientes líneas son para eliminar las Asociaciones a nivel de Usuario si estas existen, ya que hay programas que no requieren permisos de administrador y escriben el HKEY_CURRENT_USER (HKCU) en lugar de HKEY_LOCAL_MACHINE (HKLM o HKCR):

Código (bash) [Seleccionar]
Reg Delete HKCU\SOFTWARE\Classes\imagenes /F
Reg Delete HKCU\SOFTWARE\Classes\.jpeg /F
Reg Delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpeg /F


- Entonces es normal que den error diciendo que no encuentran, salvo la última línea que ya es cuando el Usuario manualmente a elegido un programa para una extensión (UserChoise > Hash), donde se tiene que eliminar a mano desde Regedit.exe

Danielㅤ

#16
CitarGracias, posiblemente cree un .bat para, si un día formateo Windows, asocie mis numerosos programas portables con las múltiples extensiones

La idea está buena pero yo te recomendaría que dentro de ese archivo bat escribas una descripción de que es lo que hace ese código y/o también podes poner la URL de éste tema (tu tema) para guiarte exactamente para que sirve, hoy te podes acordar de que es lo que hace ese código pero al pasar el tiempo, los meses o años te podes olvidar.

Código (bash) [Seleccionar]
:: Codigo para asociar extensiones a programas
:: URL de referencia https://foro.elhacker.net/scripting/asociacion_masiva_de_extensiones_a_programas-t509864.10.html


O también

Código (bash) [Seleccionar]
REM codigo para asociar extensiones a programas
REM URL de referencia https://foro.elhacker.net/scripting/asociacion_masiva_de_extensiones_a_programas-t509864.10.html



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

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