(Ayuda,) Cambiar asociaciones de JPG o PNG con un BAT

Iniciado por DekerMD, 17 Noviembre 2014, 15:36 PM

0 Miembros y 2 Visitantes están viendo este tema.

DekerMD

Hola, ;)

Espero me puedan ayudar, tengo mas de 1 mes buscando y nada aun sigo verde :(

Trabajo en una empresa que hace computadoras, tables y de mas cosas.
mi trabajo es revisar muchas cosas entre ellas ver imágenes JPG, PNG, ETC.
pero las imágenes cual sea su formato es virgen y a cada rato tengo que elegir conque programa se abre cada Imagen (Visualizado de fotos de Windows)
lo que podre lograr asta ahora es esto, con mi "prueba1.bat"

rundll32.exe %SystemRoot%\System32\shimgvw.dll, ImageView_Fullscreen F:\Prueba.png

Que hace?, Solo abre la imagen en el visor de fotos de Windows pero no modifica ni lo pone como predeterminado a usar para todas las fotos con formato .PNG que al fin y al cabo es lo que busco que a todas las fotos que tengan ese formato se abran ya por DEFAULT con el visor de fotos de windows.
espero a verme echo entender y de antemano Gracias por leer esto y espero su ayudad de verdad esto me ayudaría bastante en mi trabajo.



esta Operaccion la realizo mas de 300 veces es por eso que me ayudaria mucho aserlo con un solo clip en un .BAT :D o en Leguaje C ++ pero eso le entiendo nada :(

Gracias por tu Tiempo :D

Eleкtro

#1
¿Por qué la necesidad de utilizar un Script?

Puedes cambiar la asociación de cualquier archivo mediante Windows:
Click derecho > Abrir con... > Elegir programa predeterminado

¿No te sirve eso para llevar a cabo tu propósito?, no se si te entendí bien pero no creo que vayas a querer establecer el programa predeterminado 300 veces al día...

De todas formas si sigues queriendo una herramienta para automatizar la tarea, puedes probar este Script que desarrollé hace años:
[Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos)

1) Realiza un backup completo del registro.
2) Utiliza el siguiente comando:
Código (dos) [Seleccionar]
ASSOC7.exe -a ".png" "mspaint.exe"

Saludos








DekerMD

#2
Gracias...
se ve que si me va servir
solo que ya vi el Trabajo que usted realizo y no encontré la manera de solucionar el problema de los 64 bits

le dejo una Foto de las dos formas que realice y en las dos el mismo problema :(

URL De la Imagen.
ya que se me iso muy grande para la pagina :(


veras Lo Hago desde una USB por que mi trabajo me hace meter una USB a mas de 300 PC  para hacerle pruebas y la de la imagen es una de ellas :D
De antemano Gracias.

Eleкtro

#3
perdona, pero me he perdido un poco :xD ¿de donde sale ese executable?

Ahora veo que me confundí en mi comentario anterior y escribí la extensión "ASSOC7.exe" en lugar de "ASSOC7.bat", quizás hayas mal interpretado eso, perdon, es la costumbre.

Lo siento, hacia mucho que no lo utilizaba, reectifico y te explico de nuevo:

1) Copias el código en un archivo con extensión ".bat", con codificación ANSI (es la codificación por defecto si creas y guardas el archivo desde el Notepad)
2) Llamas al archivo "ASSOC.bat"
3) Ejecutas el siguiente comando (especificando la ruta completa del programa en el segundo parámetro):
ASSOC.bat -a ".png" "C:\Windows\System32\mspaint.exe"

Debería salirte algo parecido a esto (dependiendo de varios factores):

png.irfanview_file="C:\Windows\System32\mspaint.exe" "%1"

CORRECTO


Ahora si, ¿te ha funcionado?

Saludos








DekerMD

#4
Gracias amigo por toda la inf pero lamento decirte con toda la pena del mundo que no me sale te explico como lo estoy asiendo para que me digas como o en que parte estoy mal o ya aprovechando tu ayuda me gustaría si no es mucho pedir que de  alguna manera me pasaras los archivos ya Creados y así yo estudiarlos y ver en que falle o si lo estaba asiendo similar :D

asi lo hago yo Copie este Codigo que dejo usted aqui
http://foro.elhacker.net/scripting/batch_aporte_assoc7_crea_asocia_y_desasocia_tipos_de_archivos-t355338.0.html;msg1724820#msg1724820
y lo aguarde asi ( ASSOC.bat )
despues ise otro Prueba.bat con el digo

ASSOC.bat -a ".png" "C:\Windows\System32\mspaint.exe"

Cuando lo ejecuto Prueba.bat me sale solo esto.

Asociacion de archivo no encontrada para la extension -a .png

a no se que quieres decir con ".bat", con codificación ANSI

Eleкtro

Cita de: DekerMD en 17 Noviembre 2014, 21:33 PMAsociacion de archivo no encontrada para la extension -a .png

prueba a utilizar el parámetro "-c" en lugar de "-a", para forzar la creación de la asociación.

saludos








DekerMD

Nada, :(  ahora no sale nada solo abre el MS-DOS y se cierra sola pero no modifica la forma de abrir de la imagen. sigue pidiéndome con que programa abrir la imagen.
tengo un windows 7 de 64bits no se si sea ese el problema ya que ya lei a detalle tu trabajo y la verdad me suena a que es lo que sensatamente busco.
de antemano perdona las molestias.

Eleкtro

Si, es lo que buscas, yo lo he testeado tanto en win7 x64 (en su día) y ahora en Win8.1 x64, en mi caso me ha funcionado.

De todas formas puedes hacerlo de forma manual y automatizar la tarea en un script, no es nada dificil.


Prueba a hacerlo de esta manera:

1) Utiliza el comando ASSOC de windows (no mi Assoc.bat) de esta manera:
assoc | find /I ".png"

Te saldrá la extensión, y a la derecha la clave de registro asociada, algo así:
.png=png.irfanview_file

Nota: También puedes ver la clave asociada en el valor por defecto de la clave de la extension:
HKEY_CLASSES_ROOT\.png


2) Abre el regedit, y ve a la ruta de la clave asociada:
HKEY_CLASSES_ROOT\{CLAVE ASOCIADA}\Shell\Open\Command

Ejemplo:
HKEY_CLASSES_ROOT\png.irfanview_file\Shell\Open\Command

Nota: Si la clave ...\Shell\Open\Command no existe, creala.


3) Modifica el valor por defecto de la clave "Command" por la aplicación con la que quieres abrir esa extensión.

Ejemplo:
"C:\Windows\System32\mspaint.exe" "%1"


¿Cómo automatizar la tarea?, con un script de registro, por ejemplo:

Código (ini) [Seleccionar]
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.png]
@="CustomAssociation.png"

[HKEY_CLASSES_ROOT\CustomAssociation.png\Shell\Open\Command]
@="\"C:\\Windows\\System32\\mspaint.exe\" \"%1\""

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\OpenWithProgids]
"CustomAssociation.png"=hex(0):


O con Batch:
Código (dos) [Seleccionar]
:: Converted with Reg2Bat by Elektro

@Echo OFF
REG ADD "HKCR\.png"                                     /V "" /D "CustomAssociation.png"                       /F
REG ADD "HKCR\CustomAssociation.png\Shell\Open\Command" /V "" /D "\"C:\Windows\System32\mspaint.exe\" \"%%1\"" /F
Pause&Exit



Si aun así eso no te sirve, puedes intentar buscar otra solución en Google, u otras herramientas más profesionales y que te permitan automatizar la tarea.


Saludos








DekerMD

Gracias... de igual toda esta información  me la llevare a la empresa para que los amigos que saben mucho mas de Programación puedan saber leer toda tu información y poder hacer que haga lo que busco con dos clip en el .bat  :D

DekerMD

Buenas de Nuevo :D

un amigo vio Su trabajo y me digo que donde realmente tenia que cambiarse algo es en otra ruta.
en esta para ser mas exactos,
en esta ruta es notorio el cambio de programas con que se abre .png

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice]
"Progid"="PhotoViewer.FileAssoc.Png"


lo cual modifico tu código a solo a esto

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.png\UserChoice" /V "" /D "\"Progid"="PhotoViewer.FileAssoc.Png\" \"%%1\"" /F

lo único malo es que cuando lo Calamos dice (ERROR: Acceso Denegado.)

segun el dice que es es por que el archivo que intentamos Cambiar esta muy bien Protegido y que el no conoce una forma de forzar mas el comando para que deje meter esto :( bueno de antemano Gracias por toda la info me ayudo a entender y mejorara otras cosas que ni tenia en mente mejorar :D
Saludos :D