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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos)  (Leído 3,863 veces)
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.788



Ver Perfil
[Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos)
« en: 3 Marzo 2012, 12:36 pm »

Hello world!

Estaba cansado de tener que usar "assoc" para buscar si existe una estenxion, Y luego "ftype" para buscar la asociacion de esa extensión... bah!

He creado mi propia utilidad, ASSOC7.



Muchos conocerán la utilidad "Associate.exe" de mierd@soft Microsoft, Pues hace basicamente CASI lo mismo que mi utilidad, Pero "Associate.exe" no funciona correctamente (Crea mal las asociaciones).

El modo de usar este script es parecida a la utilidad "Associate"...

Código:
ASSOC7[OPCIÓN] [Extension] [Programa]

Pero mejorado!  ;D

Código:
- Opciones:

  -a    (Asociar una extensión)
  -c    (Crear una extension y una asociación para esa extensión)
  -d    (Desasociar una asociación)

Ejemplo para asociar:
Código
  1. ASSOC7.exe -a .url notepad.exe
(Ftype urlfile="C:\windows\system32\notepad.exe" "%1")

Ejemplo para crear:
Código
  1. ASSOC7.exe -c .elektro "%Windir%\notepad.exe"
(Reg add "HKCR\.elektro\.elektro.file"
Ftype .elektro.file="C:\windows\system32\notepad.exe" "%1")

Ejemplo para desasociar:
Código
  1. ASSOC7.exe -d .elektro
(Ftype .elektro.file="")



Comparaciones:

                                                                         ASSOC7       Associate
Funciona en Windows 7                                              SI                             NO

Crea asociaciones                                                      SI                             NO

Modifica asociaciones                                                 SI                             SI (...Las jode en Windows 7, Menos la del notepad, Todas las demás.)

Elimina asociaciones                                                  SI                             SI

Se pueden usar nombres cortos para los programas      SI                             SI (Solamente si la instalación del programa está registrada en "AppPaths")


No tengo nada más que añadir.

Espero que a alguien le sirva como me servirá a mi  ;D

Salu2!



El code:

Código
  1. @Echo OFF
  2. Title Associate 7     v1.0
  3. REM| ASSOC7 v1.0
  4. REM|
  5. REM| By Elektro H@cker
  6.  
  7. REM| Herramienta para asociar y desasociar extensiones de archivos.
  8. REM|
  9. REM| Nota:
  10. REM| Si una extensión no tiene una asociación, Se creará una nueva añadiendo el sufijo ".file" al nombre de la extensión.
  11. REM| Por ejemplo, Si existe la extensión ".Elektro" Pero no está asociada. La nueva asociación se llamará ".Elektro.File".
  12.  
  13.  
  14.  
  15.  
  16. REM Control de errores
  17.  
  18. If  "%1" EQU "/?" (Goto :AYUDA)
  19. If  "%1" EQU "" (Goto :AYUDA)
  20. If  "%2" EQU "" (Goto :AYUDA)
  21. If /I "%~1" EQU "-d" (Goto :Buscar_clave)
  22. If  "%3" EQU "" (Goto :AYUDA)
  23.  
  24. Echo %1 | Findstr /I /R "\-a \-c \-d" >NUL
  25. If NOT %Errorlevel% EQU 0 (Goto :ERROR.SWITCH)
  26.  
  27.  
  28. set num=0
  29. If NOT Exist "%Windir%\System32\%~3" (
  30. If NOT Exist "%~3" (
  31. call :Buscar_programa "%~1" "%~2" "%~3"
  32. )  ELSE (Set "Program=%~3")
  33. ) ELSE (
  34. Set "Program=%Windir%\System32\%3"
  35. )
  36. If "%NUM%" EQU "3" (Goto :ERROR.PATH)
  37.  
  38.  
  39. Reg query "HKCR\%~2" >NUL 2>&1
  40. If NOT %Errorlevel% EQU 0 (
  41. If /I "%~1" EQU "-c" (Goto :Comprobar_crear) ELSE (Goto :ERROR.EXT)
  42. )
  43.  
  44.  
  45. Goto :ASSOC7
  46.  
  47.  
  48. :Buscar_clave
  49. Reg query "HKCR\%~2" >NUL 2>&1
  50. If NOT %Errorlevel% EQU 0 (Goto :ERROR.EXT) ELSE (Goto :Comprobar_desasociar)
  51.  
  52.  
  53. :Buscar_programa
  54.  
  55. Echo "%~3" | Find "\" >NUL 2>&1
  56.  
  57. Set /a num+=1
  58. If NOT %Errorlevel% EQU 0 (
  59. For /F "Tokens=*" %%a in ('Dir /B /S "%PROGRAMFILES(X86)%\%~3" 2^>nul') do (
  60. If NOT "%%a" EQU "" (Set "Program=%%a" & Goto :EOF)
  61. )
  62. )
  63.  
  64. If NOT %Errorlevel% EQU 0 (
  65. For /F "Tokens=*" %%a in ('Dir /B /S "%PROGRAMFILES%\%~3" 2^>nul') do (
  66. If NOT "%%a" EQU "" (Set "Program=%%a" & Goto :EOF)
  67. )
  68. )
  69. Set /a num+=1
  70. If NOT %Errorlevel% EQU 0 (
  71. For /F "Tokens=*" %%a in ('Dir /B /S "%WINDIR%\SYSWOW64\%~3" 2^>nul') do (
  72. If NOT "%%a" EQU "" (Set "Program=%%a" & Goto :EOF)
  73. )
  74. )
  75. Set /a num+=1
  76. Goto :EOF
  77.  
  78.  
  79. :ERROR.SWITCH
  80. Echo: No existe la opcion "%~1"
  81. Exit /B 1
  82.  
  83. :ERROR.EXT
  84. Echo: No existe la extension "%~2"
  85. Exit /B 1
  86.  
  87. :ERROR.PATH
  88. Echo: No se ha podido encontrar el programa "%~nx3"
  89. Exit /B 1
  90.  
  91. :ERROR.DESA
  92. Echo: La extension no estaba asociada a ningun programa. "%~2"
  93. Exit /B 1
  94.  
  95.  
  96. :AYUDA
  97. Echo: Assoc7     (By Elektro H@cker)
  98. Echo+  Herramienta para asociar tipos de archivos.
  99. Echo+ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
  100. Echo: Modo de empleo:
  101. Echo: %~n0 [Opcion] [Extension] [Ruta de la aplicacion]
  102. Echo: [OPCIONES]
  103. Echo; -a     [Asocia una extension a un programa
  104. Echo: -c     [Crea una extension con su asociacion, Y la asocia a un programa]
  105. Echo: -d     [Desasocia una asociacion existente]
  106. Echo: Ejemplo:
  107. Echo: %~n0 -a .url Notepad.exe
  108. Exit /B 1
  109.  
  110.  
  111.  
  112.  
  113.  
  114. REM ASSOC7
  115.  
  116. :ASSOC7
  117.  
  118.  
  119. :Comprobar_asociar
  120. For /F "Tokens=1,2* delims= " %%a in ('Reg query "HKCR\%~2" ^| find "Predeterminado"') do (
  121. If "%%c" EQU "" (Goto :Crear "%~1" "%~2") ELSE (Set "Tipo=%%c" && Goto :Asociar)
  122. )
  123.  
  124. :Comprobar_desasociar
  125. For /F "Tokens=1,2* delims= " %%a in ('Reg query "HKCR\%~2" ^| find "Predeterminado"') do (
  126. If "%%c" EQU "" (Goto :ERROR.DESA) ELSE (Set "Tipo=%%c" && Goto :Desasociar)
  127. )
  128.  
  129. :Comprobar_crear
  130. Reg query "HKCR\%~2"  >nul 2>&1
  131. If "%errorlevel%" EQU "1"  (Goto :Crear0 "%~1" "%~2") ELSE (Set "Tipo=%%c" && Goto :Asociar)
  132.  
  133.  
  134. :Crear
  135. Reg add "HKCR\%~1" /d "%~2.File" /F  >nul 2>&1
  136. Set "Tipo=%~1.File"
  137. Goto :Asociar
  138.  
  139.  
  140. :Crear0
  141. Reg add "HKCR\%~2" /F  >nul 2>&1
  142. Reg add "HKCR\%~2" /d "%~2.File" /F  >nul 2>&1
  143. Set "Tipo=%~2.File"
  144. Goto :Asociar
  145.  
  146.  
  147. :Asociar
  148. Ftype %Tipo%="%PROGRAM%" "%%1" | MORE
  149. Echo: CORRECTO
  150. Exit /B 0
  151.  
  152.  
  153. :Desasociar
  154. Ftype %Tipo%="" | MORE
  155. Echo: CORRECTO
  156. Exit /B 0


« Última modificación: 11 Diciembre 2012, 15:47 pm por EleKtro H@cker » En línea

hax_1000

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: [Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos)
« Respuesta #1 en: 11 Diciembre 2012, 10:28 am »

Que tal !, justo andaba buscando algo asi !, una duda !, como se compila el codigo, en que programa c++ ?  !, o como obtengo el ASSOC7.exe ?

cree una aplicacion tipo karaoke en flash !, y tiene instalador y demas !; pero ocupo asocia el reproductor flash player.exe a la extensión .swf !!.

gracias de antemano !.

-----------------------------------------
o no ya gracias ya le investigue !, y ya pude !. ahora me dedicare a poder hacer el escript que necesito para que se asocie automaticamente cuendo se instala el karaoke

muchas gracias !.

-----------------------------------------------

Ya estuve probando y haciendo la prueva !, resulta que no me deja !, como se le puede hacer !; mira el caso es el siguiente :

Instalo mi aplicacion en C: Archivos de programa / Auto IL & AS

dentro de esa misma carpeta esta la aplicacion "pista interactiva.swf"
y el player "fplayer.exe" esta directo en C:

ejecuto el ASSOC7.exe hay mismo !, ingreso por CMD al ese directorio !, y me meto al ASSOC7 , y pongo ASSOC7 -a .swf "C:\fplayer.exe"
igual cale con ASSOC7 -c .swf "C:\fplayer.exe"

me dice : Acceso denegado en ambos casos !.
ERROR MIESTRAS SE PROCESABA : SHOCKWAVEfLASH.SHOCKWAVEfLASH.

QUE PUEDO HACER EN ESE CASO ?!



« Última modificación: 11 Diciembre 2012, 11:21 am por hax_1000 » En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.788



Ver Perfil
Re: [Batch] (APORTE) ASSOC7 (Crea, Asocia, Y desasocia tipos de archivos)
« Respuesta #2 en: 11 Diciembre 2012, 16:11 pm »

me dice : Acceso denegado
ERROR MIESTRAS SE PROCESABA : SHOCKWAVEfLASH.SHOCKWAVEfLASH.

Parece que necesitas privilegios para modificar esa clave del registro


- Puedes modificar manuálmente el propietario a "administrador" y los permisos en las siguientes claves:
Código:
HKEY_CLASSES_ROOT\.swf
Código:
HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash

(Click derecho en las claves > "Permisos...") (Asegúrate de cambiar propietario/permisos recursivamente, es decir, asegúrate que afecte a todas las subclaves)


- O puedes modificar los permisos con REGINI automáticamente (PERO NO PUEDES MODIFICAR EL PROPIETARIO):


Código
  1. (
  2. Echo HKEY_CLASSES_ROOT\.swf                                      [1 7 17]
  3. Echo HKEY_CLASSES_ROOT\.swf\defaulticon                          [1 7 17]
  4. Echo HKEY_CLASSES_ROOT\.swf\OpenWithList                         [1 7 17]
  5. Echo HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash             [1 7 17]
  6. Echo HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash\CLSID       [1 7 17]
  7. Echo HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash\CurVer      [1 7 17]
  8. Echo HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash\defaulticon [1 7 17]
  9. Echo HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash\Shell       [1 7 17]
  10. )>"%TEMP%\Flash.ini"
  11. Regini.exe "%TEMP%\Flash.ini"


- O puedes modificar el propietario y los permisos usando la aplicación SETACL (Búscala en Google)

Código
  1. REM Este comando modifica el propietario.
  2. setacl.exe -on "HKEY_CLASSES_ROOT\.swf" -ot reg -ownr "n:%USERNAME%" -rec yes -actn setowner
  3. setacl.exe -on "HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash" -ot reg -ownr "n:%USERNAME%" -rec yes -actn setowner
  4.  
  5. REM Este comando modifica los permisos de la clave.
  6. setacl.exe -on "HKEY_CLASSES_ROOT\.swf" -ot reg -ace "n:%USERNAME%;p:full" -rec yes -actn ace
  7. setacl.exe -on "HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash" -ot reg -ace "n:%USERNAME%;p:full" -rec yes -actn ace


Cierro el tema, si tienes una duda debes crear un nuevo post, no revivir uno antiguo  :P.

Saludos
« Última modificación: 11 Diciembre 2012, 16:12 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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