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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: 1 ... 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 [731] 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 ... 1253
7301  Programación / Scripting / Re: [APORTE] [BATCH] Folders2List en: 12 Abril 2014, 15:04 pm
Pero, ¿A que viene la función del tiempo? xD

Es un simple capricho, la verdad es que el script trabaja rápido pero aun así me gusta saber cuanto tarda, estoy acostumbrado a medir el tiempo de ejecución en la programación .NET para optimizar los procedimientos que den señales de conflictos en el tiempo de ejecución.

PD: Gracias por comentar.

Saludos!
7302  Programación / Scripting / [APORTE] [BATCH] Folders2List en: 12 Abril 2014, 00:31 am
Hola

Este Script es el hermano de este otro Script, genera un archivo de texto que contiene la lista de estructura de carpetas del directorio de trabajo y de sus subdirectorios, el directorio de trabajo se puede modificar en las variables del Script, y la lista de capetas se registra usando la ruta relativa de los archivos de dicho directorio de trabajo.

El Script tiene 2 métodos de listar las carpetas, que son: 1. Listado normal, y 2. Listado incluyendo carpetas ocultas.
El Script tiene la funcionalidad de medir el tiempo transcurrido de la operación.

Todo lo que he mencionado se puede configurar en las variables que están documentadas con comentarios de ayuda en el código.

· Una imagen de muestra:


· El código:

Folders2List.cmd
Código
  1. @Echo OFF
  2.  
  3.  
  4.  
  5. REM =================
  6. REM Console Settings:
  7. REM =================
  8.  
  9. Title Folders2List - By Elektro
  10. Mode Con Cols=150 Lines=50
  11. CHCP 1252 1>NUL & REM Windows-1252, Spanish-Latin.
  12.  
  13.  
  14.  
  15. REM =====
  16. REM Info:
  17. REM =====
  18.  
  19. Echo  ------------------------------------------------------------------------------------------------------------------------------------
  20. Echo  This script writes a textfile containing the relative paths of the folder structure at the working directory and it's subdirectories
  21. Echo  ------------------------------------------------------------------------------------------------------------------------------------
  22.  
  23.  
  24.  
  25. REM ====================
  26. REM User defined values:
  27. REM ====================
  28.  
  29. REM This value indicates the directory where to list it's folder structure.
  30. Set "WorkingDir=%CD%"
  31.  
  32. REM This value indicates the resulting folder list.
  33. Set "OutputFile=%CD%\Folders.txt"
  34.  
  35. REM This value indicates how the hidden folders are threated when listing the folder structure.
  36. REM  True = List folders and also folders with the 'hidden' attribute.
  37. REM False = List only normal folders without the 'hidden' attribute.
  38. Set "IncludeHiddenFolders=True"
  39.  
  40.  
  41.  
  42. REM =====
  43. REM Main:
  44. REM =====
  45.  
  46. :: Display starting info.
  47. Echo [i] Working Directory...: %WorkingDir%
  48. Echo [i] Output file.........: %OutputFile%
  49. Echo [i] Include Hidden Files: %IncludeHiddenFolders%
  50.  
  51. :: Call Methods.
  52. Call :CheckErrors
  53. Call :StartTimer
  54. Call :ListFolders "%IncludeHiddenFolders%"
  55. Call :StopTimer
  56.  
  57. :: Finish.
  58. Echo [i] Done!           | MORE
  59. Echo [i] Listed Folders: %FolderCount% folders.
  60. Echo [i] Elapsed Time..: %ElapsedTime%
  61. Pause&Exit
  62.  
  63.  
  64.  
  65. REM ========
  66. REM Methods:
  67. REM ========
  68.  
  69. :StartTimer
  70. Set "StartingDate=%Date%"
  71. Set "StarttingTime=%Time:~0,-3%"
  72. Goto :EOF
  73.  
  74.  
  75. :StopTimer
  76. (
  77. Echo Minutes = DateDiff^("n", "%StartingDate% %StarttingTime%", Now^)
  78. Echo WScript.Echo Minutes ^& " Minutes"
  79. )>"%TEMP%\%~n0 MinuteDiff.vbs"
  80.  
  81. For /F "Tokens=*" %%# In (
  82. 'Cscript.exe /Nologo "%TEMP%\%~n0 MinuteDiff.vbs"'
  83. ) Do (
  84. Set "ElapsedTime=%%#"
  85. )
  86.  
  87. Goto:EOF
  88.  
  89.  
  90. :ListFolders
  91. Echo [+] Collecting folders, this operation could take some minutes long, please wait...
  92. If /I "%~1" EQU "True"  (Call :ListHiddenFolders)
  93. If /I "%~1" EQU "False" (Call :ListNormalFolders)
  94. Goto:EOF
  95.  
  96.  
  97. :ListNormalFolders
  98. (FOR /D /R "%WorkingDir%" %%# in ("*") DO (
  99. Set "Folder=%%~f#"
  100. Call Echo %%Folder:%WorkingDir%=.%%
  101. Set /A "FolderCount+=1"
  102. ))>"%OutputFile%"
  103. Goto:EOF
  104.  
  105.  
  106. :ListHiddenFolders
  107. (FOR /F "Tokens=* Delims=" %%# in ('Dir /B /S /AD "%WorkingDir%\*"') DO (
  108. Set "Folder=%%~f#"
  109. Call Echo %%Folder:%WorkingDir%=.%%
  110. Set /A "FolderCount+=1"
  111. ))>"%OutputFile%"
  112. Goto:EOF
  113.  
  114.  
  115.  
  116. REM ===============
  117. REM Error Controls:
  118. REM ===============
  119.  
  120. :CheckErrors
  121. :: 'IncludeHiddenFolders' Value check.
  122. If /I "%IncludeHiddenFolders%" NEQ "True" If /I "%IncludeHiddenFolders%" NEQ "False" (
  123. Echo [x] Error parsing parameter 'IncludeHiddenFolders',
  124. Echo     value '%IncludeHiddenFolders%' is not a Boolean value.
  125. Pause&Exit
  126. )
  127.  
  128. Goto:EOF
7303  Programación / Scripting / [APORTE] [BATCH] Files2List en: 11 Abril 2014, 23:34 pm
Hola

He escrito este Script el cual genera un archivo de texto que contiene la lista de archivos con la estructura de archivos del directorio de trabajo y de sus subdirectorios, el directorio de trabajo se puede modificar en las variables del Script, y la lista de archivos en el archivo de listado se registra usando rutas relativa de los archivos de dicho directorio de trabajo.

¿Porque en Batch si siempre me estoy quejando de este "lenguaje"?, para recordar viejos tiempos y porque tuve que escribirlo y testearlo diréctamente desde una VM, con otro lenguaje habria sido aún más coñazo estar testeando de la VM al PC host y viceversa.

Bueno, el script tiene 3 métodos de exclusión de archivos, que son: 1. Por extensión, 2. Por nombres, o 3. Por ruta absoluta, esta última está limitada a la capacidad de caracteres que puede tener un String en Batch (Int32).
El Script tiene 2 métodos de listar los archivos, que son: 1. Listado normal, y 2. Listado incluyendo archivos ocultos.
El Script también tiene capacidad de registrar unformación básica en un Log, y la funcionalidad de medir el tiempo transcurrido de la operación.

Todo lo que he mencionado se puede configurar en las variables que están documentadas con comentarios de ayuda en el código.

Nota: Al explotar la limitada capacidad de Batch añadiendo varias funcionalidades adicionales a un código, este se vuelve demasiado lento, ya que Batch por naturaleza es MUY lento para trabajar, así que ya aviso, si no necesitan excluir archivos entonces no asignen ningún valor en las variables de exclusión.

PD: En el log se guardan las rutas relativas de los archivos que hayan sido excluidas:

Files2List.log
Citar
Excluded Files:
===============

.\Filesize Truncator.bat
.\Folders2List.bat
.\Windows\WinSxS\Get Manifests.bat


· Una imagen de muestra:



· El código:

Files2List.cmd
Código
  1. @Echo OFF
  2.  
  3.  
  4.  
  5. REM =================
  6. REM Console Settings:
  7. REM =================
  8.  
  9. Title Files2List - By Elektro
  10. Mode Con Cols=150 Lines=50
  11. CHCP 1252 1>NUL & REM Windows-1252, Spanish-Latin.
  12.  
  13.  
  14.  
  15. REM =====
  16. REM Info:
  17. REM =====
  18.  
  19. Echo  ----------------------------------------------------------------------------------------------------------------------------------
  20. Echo  This script writes a textfile containing the relative paths of the file structure at the working directory and it's subdirectories
  21. Echo  ----------------------------------------------------------------------------------------------------------------------------------
  22.  
  23.  
  24.  
  25. REM ====================
  26. REM User defined values:
  27. REM ====================
  28.  
  29. REM This value indicates the directory where to list it's file structure.
  30. Set "WorkingDir=%CD%"
  31.  
  32. REM This value indicates the resulting file list.
  33. Set "OutputFile=%CD%\Files.txt"
  34.  
  35. REM This value indicates the ubication of the logfile that will record info.
  36. Set "Logfile=%CD%\%~n0.log"
  37.  
  38. REM This value indicates the File-Extensions to exclude during the process.
  39. REM ( Use an ';' delimiter to separate multiple extensions )
  40. Set "ExcludeExts=.bat;.cmd"
  41.  
  42. REM This value indicates the filenames to exclude during the process.
  43. REM ( Use an ';' delimiter to separate multiple filenames )
  44. Set "ExcludeNames=%~nx0"
  45.  
  46. REM This value indicates the files to exclude during the process.
  47. REM ( Use an ';' delimiter to separate multiple files )
  48. Set "ExcludeFiles=%OutputFile%;%Logfile%"
  49.  
  50. REM This value indicates how the hidden files are threated when listing the file structure.
  51. REM  True = List files and also files with the 'hidden' attribute.
  52. REM False = List only normal files without the 'hidden' attribute.
  53. Set "IncludeHiddenFiles=True"
  54.  
  55.  
  56.  
  57. REM =====
  58. REM Main:
  59. REM =====
  60.  
  61. :: Call Methods.
  62. Call :CheckErrors
  63. Call :CreateLog
  64. Call :StartTimer
  65. Call :ListFiles "%IncludeHiddenFiles%"
  66. Call :StopTimer
  67. Call :EndLog
  68. Pause&Exit
  69.  
  70.  
  71.  
  72. REM ========
  73. REM Methods:
  74. REM ========
  75.  
  76. :CreateLog
  77. :: Create the Script Logfile and record starting info on it.
  78. FSutil.exe File CreateNew "%LogFile%" "0" 1>NUL
  79. (
  80. Echo       Files 2 List
  81. Echo =========================
  82. Echo   %DATE% ^| %TIME:~0,-3%
  83. Echo /\/\/\/\/\/\/\/\/\/\/\/\/
  84. Echo [i] Working Directory...: %WorkingDir%
  85. Echo [i] Include Hidden Files: %IncludeHiddenFiles%
  86. Echo [i] Excluded Extensions.: %ExcludeExts%
  87. Echo [i] Excluded Filenames..: %ExcludeNames%
  88. Echo [i] Excluded Files......: %ExcludeFiles%
  89. Echo [i] Output file.........: %OutputFile%
  90. Echo [i] Log file............: %LogFile%
  91. Echo =========================
  92. )>"%LogFile%"
  93.  
  94. :: Display starting log info.
  95. Type "%LogFile%" | MORE
  96.  
  97. :: Continue writting log.
  98. (
  99. Echo Excluded Files:
  100. Echo ===============
  101. )>>"%LogFile%"
  102.  
  103. Goto:EOF
  104.  
  105.  
  106. :EndLog
  107. (
  108. Echo [i] Done!           | MORE
  109. Echo [i] Listed Files..: %ListedFileCount% files.
  110. Echo [i] Excluded Files: %ExcludedFileCount% files.
  111. Echo [i] Elapsed Time..: %ElapsedTime%
  112. )>>"%LogFile%"
  113.  
  114. :: Display ending information.
  115. CLS
  116. Type "%LogFile%"
  117. Goto:EOF
  118.  
  119.  
  120. :StartTimer
  121. Set "StartingDate=%Date%"
  122. Set "StarttingTime=%Time:~0,-3%"
  123. Goto :EOF
  124.  
  125.  
  126. :StopTimer
  127. (
  128. Echo Minutes = DateDiff^("n", "%StartingDate% %StarttingTime%", Now^)
  129. Echo WScript.Echo Minutes ^& " Minutes"
  130. )>"%TEMP%\%~n0 MinuteDiff.vbs"
  131.  
  132. For /F "Tokens=*" %%# In (
  133. 'Cscript.exe /Nologo "%TEMP%\%~n0 MinuteDiff.vbs"'
  134. ) Do (
  135. Set "ElapsedTime=%%#"
  136. )
  137.  
  138. Goto:EOF
  139.  
  140.  
  141. :ListFiles
  142. Echo [+] Collecting files, this operation could take some minutes long, please wait...
  143. If /I "%~1" EQU "True"  (Call :ListHiddenFiles)
  144. If /I "%~1" EQU "False" (Call :ListNormalFiles)
  145. Goto:EOF
  146.  
  147.  
  148. :ListNormalFiles
  149. (FOR /R "%WorkingDir%" %%# in ("*") DO (
  150.  
  151. Set "Exclude="
  152.  
  153. If Defined ExcludeExts (
  154. (
  155. Echo "%ExcludeExts%" | Find.exe /I "%%~x#" 1>NUL 2>&1
  156. ) && (
  157. Call Set "Exclude=True"
  158. )
  159. )
  160.  
  161. If Defined ExcludeNames (
  162. (
  163. Echo "%ExcludeNames%" | Find.exe /I "%%~nx#" 1>NUL 2>&1
  164. ) && (
  165. Call Set "Exclude=True"
  166. )
  167. )
  168.  
  169. If Defined ExcludeFiles (
  170. (
  171. Echo "%ExcludeFiles%" | Find.exe /I "%%~f#" 1>NUL 2>&1
  172. ) && (
  173. Call Set "Exclude=True"
  174. )
  175. )
  176.  
  177. If Not Defined Exclude (
  178. Set "File=%%~f#"
  179. Call Echo %%File:%WorkingDir%=.%%
  180. Set /A "ListedFileCount+=1"
  181. ) Else (
  182. Set "File=%%~f#"
  183. Call Echo %%File:%WorkingDir%=.%%>>"%LogFile%"
  184. Set /A "ExcludedFileCount+=1"
  185. )
  186.  
  187. ))>"%OutputFile%"
  188. Goto :EOF
  189.  
  190.  
  191. :ListHiddenFiles
  192. (FOR /F "Tokens=* Delims=" %%# in ('Dir /B /S /A-D "%WorkingDir%\*"') DO (
  193.  
  194. Set "Exclude="
  195.  
  196. If Defined ExcludeExts (
  197. (
  198. Echo "%ExcludeExts%" | Find.exe /I "%%~x#" 1>NUL 2>&1
  199. ) && (
  200. Call Set "Exclude=True"
  201. )
  202. )
  203.  
  204. If Defined ExcludeNames (
  205. (
  206. Echo "%ExcludeNames%" | Find.exe /I "%%~nx#" 1>NUL 2>&1
  207. ) && (
  208. Call Set "Exclude=True"
  209. )
  210. )
  211.  
  212. If Defined ExcludeFiles (
  213. (
  214. Echo "%ExcludeFiles%" | Find.exe /I "%%~f#" 1>NUL 2>&1
  215. ) && (
  216. Call Set "Exclude=True"
  217. )
  218. )
  219.  
  220. If Not Defined Exclude (
  221. Set "File=%%~f#"
  222. Call Echo %%File:%WorkingDir%=.%%
  223. Set /A "ListedFileCount+=1"
  224. ) Else (
  225. Set "File=%%~f#"
  226. Call Echo %%File:%WorkingDir%=.%%>>"%LogFile%"
  227. Set /A "ExcludedFileCount+=1"
  228. )
  229.  
  230. ))>"%OutputFile%"
  231. Goto:EOF
  232.  
  233.  
  234.  
  235. REM ===============
  236. REM Error Controls:
  237. REM ===============
  238.  
  239. :CheckErrors
  240. :: 'IncludeHiddenFiles' Value check.
  241. If /I "%IncludeHiddenFiles%" NEQ "True" If /I "%IncludeHiddenFiles%" NEQ "False" (
  242. Echo [x] Error parsing parameter 'IncludeHiddenFiles',
  243. Echo     value '%IncludeHiddenFiles%' is not a Boolean value.
  244. Pause&Exit
  245. )
  246.  
  247. Goto:EOF

Espero que a alguien le sirva de utilidad.

Saludos!
7304  Programación / Python / Re: [PROBLEMA] Quick Batch File Compiler en: 11 Abril 2014, 22:41 pm
> http://www.scriptcode.com/download/

PD: Es Software de pago.
7305  Programación / Python / Re: [PROBLEMA] Quick Batch File Compiler en: 11 Abril 2014, 21:57 pm
Quick Batch File Compiler no es un lenguaje de programación, es un programa.

EDITO: Elimino el anterior mensaje que escribí porque me he dado cuenta de que pu es la abreviación válida del comando put, sorry.


EDITO 2: Cosas a tener en cuenta:

1. El parámetro especial %0

Si tu tienes tu ScriptConvertido.exe en el escritorio, y en ese mismo directorio tienes un Script que le quieres enviar como parámetro al comando FTP (Ej: ftp -i -s:"%~dp0Script.txt"), jamás te va a funcionar el Script, ya que estos empaquetadores de Scripts necesitan extraer el contenido (el Script) a una carpeta temporal, y al hacer esto, el directorio de trabajo actual del Script (%0) es la carpeta temporal, no es la carpeta desde donde ejecutas el exe (en este caso el escritorio), lo puedes comprobar de manera muy sencilla haciendo un Echo %0.


2. Bugs de Software

Ese tipo de programas que convierten Scripts Batch a Executables todos tienen sus fallos, no son perfectos ya que Batch no es un lenguaje compilado, algunos programas simplemente copian el Script original sin hacerle modificaciones, pero otros si que se las hacen para compatibilizar y pueden mal-interpretar una instrucción o algún caracter de alguna linea del código que quieres convertir, te sugiero que evites usar los operadores de agrupación () cuando uses ese tipo de programas, intenta escribirlo todo en pocas lineas, y si puedes concatenar todas las órdenes en una sola linea mucho mejor para intentar evitar esos problemas.

Te sugiero que utilices la aplicación ExeScript Editor para empaquetar un Script, nunca me dió ese tipo de problemas.


Saludos
7306  Sistemas Operativos / Windows / Re: Guía de personalización de imágenes de implementación de Windows (WIM) (Parte 1) en: 11 Abril 2014, 17:50 pm
MUY INTERESANTE... si señor... gracias por compartir  ;)

Gracias a ti por comentar.

Saludos!
7307  Programación / Scripting / Re: -> Programación BATCH Avanzada. (nuevo) en: 11 Abril 2014, 17:40 pm
Hola de nuevo. Es evidente que para el ejemplo que he puesto he creado un archivo con extensión (txt) con el bloc de notas.
Gracias de nuevo.
Saludos.

¿Entonces el nombre del archivo excel siempre va a ser estático?, pensé que el archivo que quieres modificar siempre tendría la fecha del dia anterior y eso lo complicaba un poco más y más si habian más archivos en el mismo directorio (nada que no se puede solucionar con el patrón de busqueda adecuado), pero entonces simplemente esto te servirá:

Código
  1. @Echo OFF & Title Renombrar archivo Excel con fecha actual y nombre del dia
  2.  
  3. Set "File=%CD%\Cuenta.xls"
  4. Call :DateRename "%File%"
  5.  
  6. Pause&Exit /B 0
  7.  
  8. :DateRename
  9. Set "Today=%Date:~0,2%-%Date:~3,2%-%Date:~6,4%"
  10.  
  11. (
  12. Call Echo WScript.Echo WeekDayName^(Weekday^("%%Today%%"^)^)
  13. )>"%TEMP%\GetDayName.vbs"
  14.  
  15. For /F "Tokens=*" %%# In (
  16. 'CScript.exe /NoLogo "%TEMP%\GetDayName.vbs"'
  17. ) Do (
  18. Set "DayName=%%#"
  19. Del /Q "%TEMP%\GetDayName.vbs" 1>NUL
  20. )
  21.  
  22. REM "Nombre.ext" > "DD-MM-YYYY NombreDelDía.ext"
  23. (Rename "%~1" "%Today% %DayName%%~x1") & (Goto :EOF)

Saludos
7308  Sistemas Operativos / Windows / Re: [ActiveX] me sale este mensaje en: 11 Abril 2014, 16:41 pm
que debería hacer?
no veo nada raro.

Prueba a restaurar la configuración por defecto de IExplorer, porque el error te ocurre cuando tienes el IExplorer en ejecución, ¿me equivoco?.

Según la versión de Windows y de IE que tengas instalada puedes encontrar el modo de restaurar los valores por defecto aquí:
· http://lmgtfy.com/?q=internet+explorer+restore+default+settings

Saludos!
7309  Sistemas Operativos / Windows / Re: Arrancar de un CD a partir de Windows 7 en: 11 Abril 2014, 16:34 pm
No puedes ejecutar un medio sin inicializar el hardware que contiene ese medio... y eso es precisamente lo que hace la BIOS (aparte de otras muchas tareas, claro).

No soy un experto en Hardware pero la BIOS se encarga de inicializar el microprocesador y luego el resto del hardware, además de comprobar su operatividad realizando tests, y luego intenta buscar una partición que contenga un sistema operativo, vamos, que antes de pasar por la BIOS el PC no sabe ni si existe un SO ni mucho menos si existe un DVD-ROM conectado al PC, como para que puedas iniciar un CD...

Saludos!
7310  Sistemas Operativos / Windows / Guía de personalización de imágenes de implementación de Windows (WIM) (Parte 4) en: 11 Abril 2014, 08:05 am
4.0
· Personalizando la estética de la instalación de Windows



Ahora que ya sabemos automatizar la instalación de Windows... hagámosla bonita, ¿no?, cambiemosle todas las "florituras" y colores  >:D.

En esta parte del tutorial aprenderemos a personalizar las imágenes que usa el instalador de Windows, y de esta manera lo pondré punto y final a la personalización de la instalación, ya llegaremos a lo verdaderamente interesante en los siguientes volumenes del tutorial ;).

Nota: Se aconseja un cierto nivel de conocimientos sobre la edición de imágenes BMP (Bitmap) y sus transparencias, y opcionalmente conocimientos de archivos ICO (Iconos).

Nota: Vuelvo a recordar que este tutorial está basado y orientado en una imagen ISO de Windows 8.1 x64.


· ¿Que herramientas necesitaremos?
  Un editor de recursos, recomiendo la aplicación Restorator 2009, puero pueden usar Resource Hacker, Anolis Resourcer, o su herramienta favorita.
  Un editor de imágenes, recomiendo la aplicación Photoshop, pero pueden usar Microsoft Paint , cualquier otro e incluso pueden descargar imágenes (válidas) de Internet.
  Opcional: Un grabador de imágenes ISO para testear nuestra instalación personalizada, recomiendo la herramienta OSCDIMG que se encuentra ubicada en %WinKit%\oscdimg\oscdimg.exe
  Opcional: Una máquina virtual para testear la ISO, recomiendo la aplicación VirtualBox.





4.1
· Ubicación de los recursos de imágenes de la instalación

Dentro del DVD de Windows hay 3 librerías que contienen imágenes Bitmap e Iconos:
· ...\Sources\spwizimg.dll
· ...\Sources\w32uiimg.dll
· ...\Sources\arunimg.dll

Y el archivo Bitmap ubicado en ...\Sources\Background.bmp

Aparte, los mismos archivos se encuentran dentro de la imagen Boot.wim en las mismas ubicaciones, y esos archivos dentro de la imagen son las que debemos modificar.

Dentro de la imagen Boot.wim además hay otro archivo Bitmap ubicado en ...\Windows\System32\Setup.bmp

Nota: Si queremos hacer una modificación muy básica entonces solo debemos tener en cuenta la librería spwizimg.dll


Este es el contenido de las 3 librerías:

Nota: Los números son el nombre del recurso.


· spwizimg.dll

Bitmaps:



· w32uiimg.dll

Bitmaps:


Iconos:



· arunimg.dll

Bitmaps:


Iconos:







4.2
· Identificando los recursos de imagen que utiliza el instalador


Estos son los nombres de algunos recursos Bitmap que se usan en la instalación de Windows, en el punto 3.1 del tutorial pueden enlazar el nombre del recurso para saber en que librería se encuentra.






















4.3
· Modificando los recursos de imágenes

Pueden modificar los recursos de las librerías que se encuentran en el DVD de Windows, pero les recuerdo que los recursos que nos interesan modificar son los de las librerías que se encuentran dentro de la imagen Boot.wim (la cual ya expliqué como se puede montar en el punto 3.2 del tutorial), se encuentran en el índice de imagen 2.

En este punto la verdad es que no puedo ayudar mucho ni creo poder dar explicaciones útiles, es cosa tuya saber como editar una imagen y reemplazarla con un editor de recursos, si no sabes... ¿para que leiste hasta aquí?. ¡ ánimo !





4.3
· Automatizar la tarea de personalización de recursos de imágenes

...¿Te creiste que no iba a ayudar? >:D
Al empezar este tutorial dije que iba a proporcionar todas mis herramientas y creaciones en todos los temas, así que si te parece algo complicado la edición de recursos entonces estás de suerte!

Voy a explicar una manera muy sencilla de automatizar todo este tutorial utilizando un Script Batch y un archivo de texto, pero antes que nada quiero comentarles que en este enlace pueden descargar todo lo necesario que voy a comentar, y un ejemplo completo con imagenes y PSD's, para los que no les guste leer instrucciones largas :P

http://www.mediafire.com/download/bf17fpnjpqi30fd/WIM_Resource_Replacer.zip

Actualizado:
http://www.mediafire.com/download/ktzms7i09qt4n2b/wim+resource+replacer+0.2.rar


Estas son las instrucciones:

Por un lado deben descargar el editor de recursos Anolis Resourcer, ¿porque?, porque es con el que yo manejo de manera commandline :P
Lo pueden descargar aquí: http://anolis.codeplex.com/releases/view/32286

Por otro lado deben conocer las ubicaciones de las librerías que quieren modificar y/o archivos que quieren reemplazar, en el caso de las librerías deben conocer también los nombres de los recursos que quieren modificar (los tienen en el punto 4.1 del tutorial), y obviamente también deben tener las imagenes modificadas.

Conociendo y teniendo los archivos necesarios que acabo de mencionar, deben crear un archivo de texto delimitado por puntos y comas, estos archivos los parseará/procesará el script que luego les mostraré.

La sintaxis que deben usar para delimitar los recursos en el archivo de texto, para reemplazar archivos es:
Código:
Ruta relativa del archivo que va a ser reemplazado;Ruta relativao absoluta del archivo que se copiará

La sintaxis que deben usar para delimitar los recursos en el archivo de texto, para librerías de recursos de imágenes es:
Código:
Ruta relativa del recurso a modificar;Nombre del recurso;Ruta del recurso modificado

Nota: ¡ No se debe escribir la ruta absoluta del directorio montado !


Lean esta ayuda que escribí para entender la sintaxis del archivo de texto delimitado:

Citar
ResourceList Help - By Elektro
##############################


========================
To add or replace files:
========================

Syntax: OutFile;InFile

· Outfile:
  Indicates the file that will be Created/Replaced.
  Should be written as a relative mount filepath.

· InFile:
  Indicates the file that will be copied to the OutFile.
  Should be written as an absolute filepath.


Examples:
---------
Sources\Background.bmp;.\Resources\Background.bmp
Sources\Background.bmp;C:\Resources\Background.bmp


=====================
To replace resources:
=====================

Syntax: ResourceFile;ResourceName;InResource

· ResourceFile:
  Indicates the dll file that will be opened to replace resources inside.
  Should be written as a relative mount filepath.

· ResourceName:
  Indicates the resource name that will be replaced inside the resource file.

· InResource:
  Indicates the resource to copy inside the resource file.
  Should be written as an absolute filepath.


Examples:
---------
Sources\spwizimg.dll;517;.\Resources\517.bmp
Sources\spwizimg.dll;517;C:\Resources\517.bmp


Esto es un ejemplo de un archivo delimitado escrito de forma correcta:

Resources.txt
Código:
Sources\Background.bmp;.\Resources\Background.bmp
Windows\System32\Setup.bmp;.\Resources\Setup.bmp

Sources\spwizimg.dll;405;.\Resources\405.bmp
Sources\spwizimg.dll;407;.\Resources\407.bmp
Sources\spwizimg.dll;408;.\Resources\408.bmp
Sources\spwizimg.dll;516;.\Resources\516.bmp
Sources\spwizimg.dll;517;.\Resources\517.bmp

Sources\w32uiimg.dll;207;.\Resources\207.bmp


A continuación, lo único que tienen que hacer es ejecutar este Script, el Script se encargará de montar la imagen, reemplazar archivos (si especificaron alguno) y/o reemplazar recursos de imagenes si especificaron alguno, después desmontará la imagen y listo.

Antes de poder automatizar esta tarea usando mi Script primero deben configurar las rutas de los valores WindowsImage, MountDir, Anolis, Dism, y ResourceList que se encuentran documentados en la cabecera del archivo.


WIM Resource Replacer.bat
Código
  1. @Echo Off & Title WIM Resource Replacer - By Elektro
  2. Mode Con Cols=150 Lines=50
  3.  
  4.  
  5.  
  6. REM ======
  7. REM About:
  8. REM ======
  9.  
  10. :: Header Info.
  11. Echo -----------------------------------------------------------------------------------------
  12. Echo This script mounts a Windows Image ^(WIM^) to replace image resources of a resource file.
  13. Echo -----------------------------------------------------------------------------------------
  14.  
  15.  
  16.  
  17. REM ====================
  18. REM User defined values:
  19. REM ====================
  20.  
  21. :: User defined values.
  22. REM This value indicates whether the Windows Image should be mounted.
  23. REM True  = 'DISM' will try to mount the 'WIM' image.
  24. REM False = 'DISM' will not try to mount the WIM image.
  25. REM Set this value to 'FALSE' if the 'WIM' image is already mounted in the specified mount directory,
  26. REM Otherwise, keep it as 'TRUE'.
  27. Set "MountImage=True"
  28.  
  29. REM This value indicates whether the Windows Image should be unmounted at the end.
  30. REM True  = 'DISM' will try to unmount the 'WIM' image.
  31. REM False = 'DISM' will not try to unmount the WIM image.
  32. REM Set this value to 'FALSE' if you want to keep the image mounted to make other changes,
  33. REM Otherwise, keep it as 'TRUE'.
  34. Set "UnmountImage=True"
  35.  
  36. REM This value indicates the 'WIM' image to be mounted.
  37. Set "WindowsImage=%UserProfile%\Desktop\win 8 .1\win\sources\Boot.wim"
  38.  
  39. REM This value indicates the Image Index of the 'WIM' image.
  40. Set "ImageIndex=2"
  41.  
  42. REM This value indicates the directory where to mount the 'WIM' image.
  43. Set "MountDir=%HomeDrive%\WinBootMount"
  44.  
  45. REM This value indicates the location of Anolis Resourcer 'Anolis.exe' file.
  46. Set "Anolis=%CD%\Tools\Anolis.exe"
  47.  
  48. REM This value indicates the textfile that contains the Recource files to replace.
  49. Set "ResourceList=%CD%\Resources.txt"
  50.  
  51. REM This value indicates the location of a custom 'DISM.exe' file if needed.
  52. REM Default location:
  53. REM "%SystemRoot%\System32\Dism.exe"
  54. Set "Dism=%CD%\Tools\Dism\Dism.exe"
  55.  
  56. REM This value indicates the location of the logfile that will record 'DISM' exceptions.
  57. Set "DismLogfile=%UserProfile%\Desktop\Dism.log"
  58.  
  59. REM This value indicates the logging-level of the 'DISM' process.
  60. REM 1 = Errors only
  61. REM 2 = Errors and warnings
  62. REM 3 = Errors, warnings, and informational
  63. REM 4 = All of the information listed previously, plus debug output
  64. Set /A "DismLogLevel=2"
  65.  
  66.  
  67.  
  68. REM =====
  69. REM Main:
  70. REM =====
  71.  
  72. Call :CheckErrors
  73. Call :CreateLog
  74. Call :CreateMountDir
  75. Call :Mount
  76. CLS
  77. Call :ParseResources
  78. Call :Unmount
  79.  
  80. Echo [i] Done!
  81. Pause&Exit
  82.  
  83.  
  84.  
  85. REM ========
  86. REM Methods:
  87. REM ========
  88.  
  89. :CreateLog
  90. :: Create the 'DISM' logfile with 'ANSI' encoding,
  91. :: this is necessary to record a non-default 'DISM' loglevel such as '1' or '2'.
  92. Echo+ >"%DismLogfile%"
  93.  
  94. :: Record initial info.
  95. (
  96. Echo Automated DISM processing:
  97. Echo ==========================
  98. Echo WIM Resource Replacer
  99. Echo [i] Date: %DATE% - %TIME:~0,2%:%TIME:~3,2%:%TIME:~6,2%
  100. Echo [i] Mount Image?...: %MountImage%
  101. Echo [i] Unmount Image?.: %UnmountImage%
  102. Echo [i] Windows Image..: %WindowsImage%
  103. Echo [i] Image Index....: %ImageIndex%
  104. Echo [i] Mount Directory: %MountDir%
  105. Echo [i] Dism Path......: %Dism%
  106. Echo [i] Dism Logfile...: %DismLogfile%
  107. Echo [i] Dism Log Level.: %DismLogLevel%
  108. Echo [i] Anolis Path....: %Anolis%
  109. Echo ===========================
  110. )>"%DismLogfile%"
  111.  
  112. :: Display initial info.
  113. Type "%DismLogfile%"
  114. Goto:EOF
  115.  
  116. :CreateMountDir
  117. :: Create the mount directory.
  118. (
  119. If Not Exist "%MountDir%" If /I "%MountImage%" EQU "True" (
  120. MkDir "%MountDir%" 2>NUL
  121. )
  122. ) || (
  123. Echo [X] Error trying to create the directory "%MountDir%" to mount the Windows Image.
  124. Echo [i] Ensure that you have Admin rights to create the directory.
  125. Echo [i] Ensure that the directory name does not contains illegal characters.
  126. Pause&Exit
  127. )
  128. Goto:EOF
  129.  
  130. :Mount
  131. :: Mounts the Windows Image into the mount directory.
  132. If /I "%MountImage%" EQU "True" (
  133.  
  134. "%Dism%" /Mount-Image /ImageFile:"%WindowsImage%" /Index:"%ImageIndex%" /MountDir:"%MountDir%" /English /LogPath:"%DismLogfile%" /LogLevel:"%DismLogLevel%" || (
  135. Echo [X] Error mounting the Image Index "%ImageIndex%" in "%MountDir%"
  136. Echo [i] Ensure that the Image Index exist.
  137. Echo [i] Ensure that you have Admin rights to write inside the directory.
  138. Echo [i] Ensure that the directory is not already mounted.
  139. Echo [i] Ensure that the directory is fully empty.
  140. REM Try to unmount the failed image and discard changes.
  141. If /I "%UnmountImage%" EQU "True" (
  142. "%Dism%" /Unmount-WIM /Discard /MountDir:"%MountDir%"
  143. )
  144. )
  145.  
  146. )
  147. Goto:EOF
  148.  
  149. :ParseResources
  150. For /F "UseBackQ Tokens=1,2,* Delims=;" %%a In ("Resources.txt") Do (
  151.  
  152. If /I "%%~xa" EQU ".dll" (Call :ReplaceResource "%MountDir%\%%~a" "%%~b" "%%~c")
  153. If /I "%%~xa" NEQ ".dll" (Call :CopyFile        "%MountDir%\%%~a" "%%~b")
  154.  
  155. )
  156. Goto:EOF
  157.  
  158. :Unmount
  159. :: Unmount the Windows Image commiting changes.
  160. If /I "%UnmountImage%" EQU "True" (
  161. "%Dism%" /Unmount-WIM /Commit /MountDir:"%MountDir%" /English /LogPath:"%DismLogfile%" /LogLevel:"%DismLogLevel%"
  162. )
  163. Goto:EOF
  164.  
  165. :TakeOwn
  166. Takeown.exe /F "%~f1" 1>NUL
  167. ICacls.exe "%~f1" /Grant "%UserName%":"F"  1>NUL
  168. Goto:EOF
  169.  
  170. :CopyFile
  171. Echo [+] Copying "%~2" to "%~1"
  172. If Not Exist "%~2" (
  173. Echo [X] Can't locate the input file "%~2". | MORE
  174. Goto:EOF
  175. )
  176. Call :TakeOwn  "%~f1"
  177. Copy /Y "%~f2" "%~f1" 1>NUL
  178. Goto:EOF
  179.  
  180. :ReplaceResource
  181. Echo [+] Replacing Resource Name "%~2" with "%~3" in resource file "%~f1"
  182. If Not Exist "%~1" (
  183. Echo [X] Can't locate the resource file to open "%~1". | MORE
  184. Goto:EOF
  185. )
  186. If Not Exist "%~3" (
  187. Echo [X] Can't locate the resource to copy "%~3". | MORE
  188. Goto:EOF
  189. )
  190.  
  191. Call :TakeOwn "%~1"
  192.  
  193. If /I "%~x3" EQU ".bmp" (
  194. Start /W "Anolis" "%Anolis%" -op:upd -src:"%~f1" -type:Bitmap -name:"%~2" -lang:1033 -file:"%~f3")
  195. )
  196. If /I "%~x3" EQU ".ico" (
  197. Start /W "Anolis" "%Anolis%" -op:upd -src:"%~f1" -type:Icon -name:"%~2" -lang:1033 -file:"%~f3")
  198. )
  199.  
  200. Goto:EOF
  201.  
  202.  
  203. REM ====================
  204. REM File Error Controls:
  205. REM ====================
  206.  
  207. :CheckErrors
  208. :: WIM File Error-Check.
  209. If /I "MountImage" EQU "True" If Not Exist "%WindowsImage%" (
  210. Echo [X] Windows Image not found in: "%WindowsImage%" | MORE
  211. Pause&Exit
  212. )
  213.  
  214. :: ResourceList File Error-Check.
  215. If Not Exist "%ResourceList%" (
  216. Echo [X] Resource-List file not found in: "%ResourceList%" | MORE
  217. Pause&Exit
  218. )
  219.  
  220. :: DISM File Error-Check.
  221. If Not Exist "%DISM%" (
  222. Echo [X] DISM process not found in: "%DISM%" | MORE
  223. Pause&Exit
  224. )
  225.  
  226. :: Anolis Resourcer File Error-Check.
  227. If Not Exist "%Anolis%" (
  228. Echo [X] Anolis process not found in: "%Anolis%" | MORE
  229. Pause&Exit
  230. )
  231.  
  232. Goto:EOF




4.4
· Obteniendo resultados

Una vez hayan montado la imagen Boot.wim para modificar los recursos de imágenes que queramos, deben desmontar la imagen WIM y guardar los cambios (lease el punto 3.3 del tutorial si no sabes hacerlo).

Nota: Si usaste mi Script para reemplazar recursos entonces no tienes porque desmontar nada.

Ya solo nos quedará generar la ISO y testearla en un DVD, ¡¡ aquí os muestro el resultado visual del ejemplo que hice para este tutorial !! :















¡ Les invito a postear sus modificaciones en este tema !
Páginas: 1 ... 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 [731] 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 ... 1253
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines