elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT  (Leído 9,032 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT
« Respuesta #10 en: 20 Noviembre 2014, 01:09 am »

Creeme, esa clave de registro que te ha comentado tu compañero no es importante, solo almacena la elección del programa que haces en la lista de programas que te muestra Windows para abrir el archivo (Click derecho > Abrir con...), eso no tiene que ver con la asociación del archivo sino con tu elección favorita.
Aquellas claves que sí tienen que ver con la asociación son las que te expliqué, las claves que modifico en aquél Batch-Script.

EDITO: luego editaré este mensaje para proponerte alguna otra solución



De todas formas te explico el Error de acceso:
A lo que se deniega el acceso es al intento de modificación del registro, no tiene que ver con el archivo en si mismo, el archivo no está protegido;
ciertas partes del registro están protegidas por defecto al igual que ciertos archivos sensibles del sistema están protegidos, ambos necesitan adquirir privilegios para su modificación y/o eliminación (a pesar de que ya seas Administrador en el equipo, un Administrador no tiene privilegios sobre todo).

Puedes utilizar la aplicación SetACL para adquirir privilegios de forma automatizada sobre dicha clave: https://helgeklein.com/download/

Ejemplo, en Batch:
Código
  1. @Echo OFF
  2.  
  3. Set "RegKey=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice"
  4.  
  5. ".\SetACL.exe" -on "%RegKey%" -ot "reg" -ownr "n:%UserName%"        -rec "Yes" -actn "setowner" -silent
  6. ".\SetACL.exe" -on "%RegKey%" -ot "reg" -ace  "n:%UserName%;p:full" -rec "Yes" -actn "ace"      -silent

(o también puedes hacerlo de forma manual desde el regedit)

Después de eso ya podrás modificar/eliminar la clave en cuestión.

Saludos!


« Última modificación: 20 Noviembre 2014, 17:48 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT
« Respuesta #11 en: 20 Noviembre 2014, 17:58 pm »

A ver, lo he testeado en una instalación limpia (en una máquina vitual)

En un principio como ya te comenté, el método que yo tutilizo para modificar una asociación me funciona sin problemas (que es la misma metodología que utilizo en aquél Batch-Script),
sin embargo, la extensión PNG (al igual que JPG) son extensiones que ya están registradas por Windows... por defecto, veo varias referencias a alguna CLSID y otras cosas, y, aunque a mi me funcione cómo lo hago, puede que haya obviado algún detalle a tener en cuenta en ciertas circunstancias como las de tu equipo.

Prueba este método "forzoso", reseteando/eliminando las MRU:

Código
  1. Windows Registry Editor Version 5.00
  2.  
  3. [HKEY_CLASSES_ROOT\.png]
  4. @="MyAssoc.PNG"
  5. [HKEY_CLASSES_ROOT\MyAssoc.PNG]
  6. @="Imagen PNG"
  7. [HKEY_CLASSES_ROOT\MyAssoc.PNG\Shell\Open\Command]
  8. @="\"C:\\Windows\\System32\\mspaint.exe\" \"%1\""
  9.  
  10. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.png]
  11. @="MyAssoc.PNG"
  12. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MyAssoc.PNG]
  13. @="Imagen PNG"
  14. [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MyAssoc.PNG\Shell\Open\Command]
  15. @="\"C:\\Windows\\System32\\mspaint.exe\" \"%1\""
  16.  
  17. [-HKEY_CLASSES_ROOT\.png\OpenWithProgIds]
  18. [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithList]
  19. [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithProgids]
  20. [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice]

En Batch:
Código
  1. @Echo OFF
  2.  
  3. Set "FileExtension=png"
  4. Set "TypeName=MyAssoc.PNG"
  5. Set "FileDescription=Imagen PNG"
  6. Set "Application=C:\Windows\System32\mspaint.exe"
  7.  
  8. (
  9. REG ADD "HKCR\.%FileExtension%"              /V "" /D "%TypeName%"                /F
  10. REG ADD "HKCR\%TypeName%"                    /V "" /D "%FileDescription%"         /F
  11. REG ADD "HKCR\%TypeName%\Shell\Open\Command" /V "" /D "\"%Application%\" \"%%1\"" /F
  12.  
  13. REG ADD "HKLM\SOFTWARE\Classes\.%FileExtension%"              /V "" /D "%TypeName%"                /F
  14. REG ADD "HKLM\SOFTWARE\Classes\%TypeName%"                    /V "" /D "%FileDescription%"         /F
  15. REG ADD "HKLM\SOFTWARE\Classes\%TypeName%\Shell\Open\Command" /V "" /D "\"%Application%\" \"%%1\"" /F
  16. )1>NUL
  17.  
  18. (
  19. REG DELETE "HKCR\.%FileExtension%\OpenWithProgIds"                                                 /F
  20. REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithList"    /F
  21. REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithProgids" /F
  22. REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice"      /F
  23. )1>NUL 2>&1
  24.  
  25. Pause&Exit

PD: Lo mismo para el formato JPG

Saludos


« Última modificación: 20 Noviembre 2014, 18:06 pm por Eleкtro » En línea

DekerMD

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT
« Respuesta #12 en: 20 Noviembre 2014, 23:53 pm »

Muchísimas Gracias por seguir aportando mas información. créeme que para mi es muy importante crear un .bat o algo que solo a dale dos clips este cambio lo haga Automáticamente. ya formatee mi pc 3 veces solo para averiguar como funciona tu trabajo.

sigo de aferrado en averiguar y ver la forma de hacer siempre lo mismo

1 Seleccionar la imagen.PNG con clip Derecho y abrir con dichoso programa.
2 que no es solo una imagen son 3 .PNG  .JPG  .Gif
mi Trabajo normal dura el poseso mas o menos 10 minutos por unidad y Gracias a un .Bat que cree el poseso solo dura 3 minuto
y Gracias a ello nuestro turno es el que saca siempre las metas de Trabajo pero hay operaciones como la de la imagen que me ayudaría agilizar 5 operaciones de Trabajo en fin. Créeme que yo Agradezco mucho el que te tomes las molestia de Ayudarme :D



Pruebas Realizas y  te Confirmo... Gracias :D de verdad Gracias
el Codigo Batch no ase ningún cambio ni en .PNG ni en .JPG :(  Pero si el script ese Automáticamente ase el cambio :D y con eso me vasta y sobra :D

Nuevamente Gracias y voy a estudiarlo para ver como funciona y así aprender mas :D
Ya Dije Gracias? :D en Fin Gracias¡¡¡¡¡¡¡


Editado :D

El Codigo Batch que me dejaste Tenia un Fallo que en la Linia
Código:
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice"      /F
Me Faltaban Permisos para poder eliminar el (UserChoice)

asi que agregue una linia y un .txt con esto dentro
Código:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice [1 17]
y lo llame permiso.txt
y asi quedo Su trabajo :D


En Batch:
Código


Código:
@Echo OFF
 
Set "FileExtension=png"
Set "TypeName=MyAssoc.PNG"
Set "FileDescription=Imagen PNG"
Set "Application=C:\Windows\System32\mspaint.exe"
 
(
REG ADD "HKCR\.%FileExtension%"              /V "" /D "%TypeName%"                /F
REG ADD "HKCR\%TypeName%"                    /V "" /D "%FileDescription%"         /F
REG ADD "HKCR\%TypeName%\Shell\Open\Command" /V "" /D "\"%Application%\" \"%%1\"" /F
 
REG ADD "HKLM\SOFTWARE\Classes\.%FileExtension%"              /V "" /D "%TypeName%"                /F
REG ADD "HKLM\SOFTWARE\Classes\%TypeName%"                    /V "" /D "%FileDescription%"         /F
REG ADD "HKLM\SOFTWARE\Classes\%TypeName%\Shell\Open\Command" /V "" /D "\"%Application%\" \"%%1\"" /F
)1>NUL
 
(

regini.exe C:\Users\Deker\Desktop\permiso.txt

REG DELETE "HKCR\.%FileExtension%\OpenWithProgIds"                                                 /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithList"    /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithProgids" /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice"      /F
)1>NUL 2>&1
 
Pause&Exit

Bueno Creo que esto es Todo Gracias por todo, aprendí mucho con esto :D
Gracias Eleкtro
« Última modificación: 21 Noviembre 2014, 19:54 pm por DekerMD » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT
« Respuesta #13 en: 21 Noviembre 2014, 20:27 pm »

Lo que comentas no fue un fallo, te expliqué que podías utilizar la aplicación SetACL para adquirir privilegios, con la aplicación RegIni puedes cambiar los permisos pero no el propietario, aunque si con cambiar los permisos te sirve para el caso entonces perfecto y no se hable más :P.

Donde si que cometí un fallo con las prisas es aquí, se me olvidó añadir la variable para eliminar las claves de forma dinámica:
Código:
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithList"    /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithProgids" /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice"      /F

Cambialo por:
Código:
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.%FileExtension%\OpenWithList"    /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.%FileExtension%\OpenWithProgids" /F
REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.%FileExtension%\UserChoice"      /F

Me alegro de que te haya servido :)

Saludos, y no olvides modificar tu mensaje principal para utilizar el icono de resuelto si el tema está resuelto.
« Última modificación: 21 Noviembre 2014, 20:30 pm por Eleкtro » En línea

DekerMD

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: (Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT
« Respuesta #14 en: 21 Noviembre 2014, 20:38 pm »

Genial no avia caiedo en eso :D

Código:
%FileExtension%

Gracias Por todo :D me despido y ya pongo esto Como resuelto. y esto Gracias a vos :D Gracias¡¡¡
Saludos :D
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines