[BATCH] [APORTE] AIR v0.1 - Script para modificar todos los iconos de Windows 7.

Iniciado por Eleкtro, 16 Julio 2012, 15:41 PM

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

Eleкtro

AIR v0.1   (Automatic Icon Replacer)






TESTEADO ÚNICAMENTE EN WINDOWS 7


Si conoceis la aplicación "IconPackager", Pues este script tiene el mismo propósito: Modificar los iconos de archivos, carpetas, menu inicio, shell32.dll...

- Todo sin herramientas externas.
- Capaz de modificar los iconos de:
  Iconos de las Shell folders
  Iconos de los Archivos (Por .extensión)
  Iconos del Shell32.dll
  Iconos del Menú inicio
- El proceso es totalmente automático.
- Los cambios de iconos se pueden revertir en cualquier momento.
- Un script alternativo que cumple los requisitos para reemplazar a herramientas como "iconpackager" (Ya, Ya se que un bat no se puede comparar al iconpackager... Pero si, si solamente hablamos de modificar los iconos, Y automatizar el proceso...).
- Muy útil para automatizar un customizado del entorno en una post-instalación de Windows. (El script lo hice por este motivo principalmente).




COMO USAR ESTE SCRIPT:


1º - CONFIGURAR LA CARPETA QUE CONTIENE TUS ICONOS, EN EL PANEL DE CONFIGURACIÓN.

2º - EN EL RESTO DE VARIABLES SIN DEFINIR, COLOCAR EL NOMBRE DEL ICONO DESEADO (ARCHIVO.ICO).
     PUEDES DEJAR VACÍA CUALQUIER VARIABLE, NO DARÁ ERROR.


DISFRUTA DE LO BUENO QUE ES AUTOMATIZAR TAREAS EN BATCH :)



@Echo OFF
Title AIR v0.1 (Automatic Icon Replacer)

::   By Elektro H@cker
::
::  
::   Visita: Foro.ElHacker.Net


REM COMO USAR ESTE SCRIPT:
REM
REM
REM 1º - CONFIGURAR LA RUTA DE LA CARPETA QUE CONTIENE TUS ICONOS, EN EL "PANEL" DE CONFIGURACIÓN.
REM
REM 2º - EN EL RESTO DE VARIABLES SIN DEFINIR, COLOCAR EL NOMBRE DEL ICONO DESEADO (ARCHIVO.ICO).
REM      PUEDES DEJAR VACÍA CUALQUIER VARIABLE, NO DARÁ ERROR.
REM
REM
REM DISFRUTA DE LO BUENO QUE ES AUTOMATIZAR TAREAS EN BATCH :)

:: :: :: :: :: :: ::
:: Configuración  ::
:: :: :: :: :: :: ::
::
::
:: Activar/Desactivar las funciones del script (ON/OFF)
:: ::::::::::::::::::::::::::::::::::::::::::: ::::::::
::
Set Change_Shell_Folders_Icons=ON
Set Change_Extensions_Icons=ON
Set Change_SHELL32_Icons=ON
Set Change_Start_Menu_Icons=ON
Set Restart_Explorer=ON
Set Undo_Changes=OFF
::
::
:: Carpeta de los iconos
:: :::::::::::::::::::::
::
Set "IconsFolder="
REM EJEMPLO: "IconsFolder=C:\windows\Media\Mis iconos\Shell\"
::
::
:: Iconos de las Shell folders
:: :::::::::::::::::::::::::::
::
Set "Shell_Folders_Names=Contacts;Desktop;Documents;Downloads;Favorites;Links;Music;Pictures;Recent;Searches;Videos"
Set Contacts_Folder=
Set Desktop_Folder=
Set Documents_Folder=
Set Downloads_Folder=
Set Favorites_Folder=
Set Links_Folder=
Set Music_Folder=
Set Pictures_Folder=
Set Recent_Folder=
REM Set "Saved games_Folder="
Set Searches_Folder=
Set Videos_Folder=
::
::
:: Iconos de los Archivos
:: ::::::::::::::::::::::
::
Set "Extensions=.EXT1;.EXT2"
Set .EXT1=
Set .EXT2=
REM EJEMPLO:
REM Set "Extensions=.EXT1;.EXT2;.JPG"
REM "SET .JPG=ARCHIVO.ICO"
::
::
:: Iconos del Shell32.dll
:: ::::::::::::::::::::::
::
Set "SHELL32_INDEX=0;1;3;4;5;6;7;8;9;10;11;12;15;29;31;32;34;40;51;59;77;107;livefolder_back;livefolder_data;livefolder_front"
REM CADA NÚMERO REPRESENTA EL ÍNDICE DE ICONO DEL ARCHIVO "SHELL32.DLL"
:: ARCHIVO DEFAULT
Set -0=
:: DOCUMENTO
Set -1=
:: CARPETA
Set -3=
Set -4=
:: DISQUETERA
Set -5=
Set -6=
:: PENDRIVE
Set -7=
:: DISCO DURO
Set -8=
Set -9=
Set -10=
:: CD-ROM
Set -11=
:: RAM
Set -12=
:: MI PC
Set -15=
:: FLECHA DE ACCESO DIRECTO
Set -29=
:: PAPELERA VACÍA
Set -31=
:: PAPELERA LLENA
Set -32=
:: ESCRITORIO
Set -34=
:: CD DE MÚSICA (CDDA)
Set -40=
:: CONEXIONES DE RED
Set -51=
:: DVD-ROM
Set -59=
:: CENTRO DE SEGURIDAD
Set -77=
:: DISCO DURO PRINCIPAL (WINDOWS)
Set -107=
:: LIVE FOLDER (FRONT)
Set -livefolder_front=
:: LIVE FOLDER (BACK)
Set -livefolder_back=
:: LIVE FOLDER (DATA)
Set -livefolder_data=
::
::
:: Iconos del Menú inicio
:: ::::::::::::::::::::::
::
:: EQUIPO
Set CLSID_EQUIPO=
:: PANEL DE CONTROL
SeT CLSID_CONTROLPANEL=
:: MENU DE INICIO (EJECUTAR)
Set CLSID_EJECUTAR=
:: FAVORITOS
Set CLSID_FAVORITOS=
:: USUARIO
Set CLSID_USUARIO=
:: USUARIOS
Set CLSID_USUARIOS=
:: IMPRESORA
Set CLSID_IMPRESORA=
:: JUEGOS
Set CLSID_GAMES=
:: RED
Set CLSID_RED=
:: :: :: :: :: :: :: :: :: ::




Setlocal enabledelayedexpansion


REM COMPROBACIÓN
IF /I NOT "%Undo_Changes%" EQU "OFF" (Goto :Undo)

IF NOT DEFINED IconsFolder (
Echo: No has definido la carpeta que contiene los iconos. & Pause & Exit /B 1
) ELSE (
IF NOT EXIST "%IconsFolder%\*.ico" (
Echo: No existen iconos en la carpeta: "%IconsFolder%" & Pause & Exit /B 1
)
)
IF "%IconsFolder:~-1,1%" EQU "\" (Set "IconsFolder=%IconsFolder:~0,-1%")


:SHELL_FOLDERS
If /I NOT "%Change_Shell_Folders_Icons%" EQU "ON" (Goto :FILE_ICONS)
Echo+
Echo: [+] Modificando los iconos de las carpetas de Shell... | MORE
For /F "Tokens=*" %%X in ('DIR /B /AD "%USERPROFILE%"') do (Attrib -A -R -S -H -I "%USERPROFILE%\%%X\desktop.ini" >NUL)
For %%X in (%Shell_Folders_Names%) do (
Type "%USERPROFILE%\%%X\desktop.ini" 2>NUL | Find /V /I "IconResource" > "%TEMP%\desktop.ini" && (
If DEFINED %%X_Folder (
IF EXIST "%IconsFolder%\!%%X_Folder!" (
Echo IconResource=%IconsFolder%\!%%X_Folder! >>"%TEMP%\desktop.ini" && (
Echo:  %%X = !%%X_Folder!
Move /Y "%TEMP%\desktop.ini" "%USERPROFILE%\%%X\desktop.ini" >NUL
)
)
)
)
)
For /F "Tokens=*" %%X in ('DIR /B /AD "%USERPROFILE%"') do (Attrib +A +R +S +H +I "%USERPROFILE%\%%X\desktop.ini" >NUL)
Echo+
Echo: OK. | MORE | MORE


:FILE_ICONS
If /I NOT "%Change_Extensions_Icons%" EQU "ON" (Goto :SHELL32.DLL)
Echo+
Echo: [+] Modificando los iconos de archivos... | MORE

For %%X in (%Extensions%) do (
If DEFINED %%X (
IF EXIST "%IconsFolder%\!%%X!" (
Echo:   %%X = !%%X!
reg query "HKCR\%%X\defaulticon" >NUL 2>&1 && For /F "Tokens=2,*" %%M in ('reg query "HKCR\%%X\defaulticon"') Do (Reg ADD "HKCR\%%X\defaulticon" /V "BACKUP_FILE_ICON_AIR" /D "%%N" /F >nul)
reg query "HKLM\Software\Classes\%%X\defaulticon" >NUL 2>&1 && For /F "Tokens=2,*" %%O in ('reg query "HKLM\Software\Classes\%%X\defaulticon"') Do (Reg ADD "HKLM\Software\Classes\%%X\defaulticon" /V "BACKUP_FILE_ICON_AIR" /D "%%P" /F >nul)
Reg ADD "HKCR\%%X\defaulticon" /D "%IconsFolder%\!%%X!" /F >NUL
For /F "Tokens=2 delims==" %%Y in ('Assoc ^| Find /I "%%X="') Do (
Reg ADD "HKCR\%%Y\defaulticon" /D "%IconsFolder%\!%%X!" /F >NUL
Reg ADD "HKLM\Software\Classes\%%Y\defaulticon" /D "%IconsFolder%\!%%X!" /F >NUL
)
)
)
)
Echo+
Echo: OK. | MORE | MORE


:SHELL32.DLL
If /I NOT "%Change_SHELL32_Icons%" EQU "ON" (Goto :START_MENU)
Echo+
Echo: [+] Modificando los iconos del sistema (SHELL32.DLL) | MORE
For %%X in (%SHELL32_INDEX%) do (
If DEFINED -%%X (
IF EXIST "%IconsFolder%\!-%%X!" (
Echo "%%X" | FIND /I "livefolder" >NUL && (Echo:  %%X = !-%%X!) || (Echo:  SHELL32.DLL,%%X = !-%%X!)
Reg ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /V "%%X" /D "%IconsFolder%\!-%%X!" /F >NUL
Reg ADD "HKLM\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /V "%%X" /D "%IconsFolder%\!-%%X!" /F >NUL
Reg ADD "HKcu\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /V "%%X" /D "%IconsFolder%\!-%%X!" /F >NUL
Reg ADD "HKcu\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /V "%%X" /D "%IconsFolder%\!-%%X!" /F >NUL
)
)
)
Echo+
Echo: OK. | MORE | MORE


:START_MENU
If /I NOT "%Change_Start_Menu_Icons%" EQU "ON" (Goto :END)
Echo+
Echo: [+] Modificando los iconos del menu inicio (CLSID's) | MORE
If defined CLSID_EQUIPO (IF EXIST "%IconsFolder%\%CLSID_EQUIPO%"             (Echo: CLSID_EQUIPO          = %CLSID_EQUIPO% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon" /D "%IconsFolder%\%CLSID_EQUIPO%" /F >NUL))
If defined CLSID_CONTROLPANEL (IF EXIST "%IconsFolder%\%CLSID_CONTROLPANEL%" (Echo: CLSID_CONTROLPANEL    = %CLSID_CONTROLPANEL% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}\DefaultIcon" /D "%IconsFolder%\%CLSID_CONTROLPANEL%" /F >NUL))
If defined CLSID_CONTROLPANEL (IF EXIST "%IconsFolder%\%CLSID_CONTROLPANEL%" (Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{26EE0668-A00A-44D7-9371-BEB064C98683}\DefaultIcon" /D "%IconsFolder%\%CLSID_CONTROLPANEL%" /F >NUL))
If defined CLSID_CONTROLPANEL (IF EXIST "%IconsFolder%\%CLSID_CONTROLPANEL%" (Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}\DefaultIcon" /D "%IconsFolder%\%CLSID_CONTROLPANEL%" /F >NUL))
If defined CLSID_EJECUTAR (IF EXIST "%IconsFolder%\%CLSID_EJECUTAR%"         (Echo: CLSID_EJECUTAR        = %CLSID_EJECUTAR% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}\DefaultIcon" /D "%IconsFolder%\%CLSID_EJECUTAR%" /F >NUL))
If defined CLSID_FAVORITOS (IF EXIST "%IconsFolder%\%CLSID_FAVORITOS%"       (Echo: CLSID_FAVORITOS       = %CLSID_FAVORITOS% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\DefaultIcon" /D "%IconsFolder%\%CLSID_FAVORITOS%" /F >NUL))
If defined CLSID_USUARIO (IF EXIST "%IconsFolder%\%CLSID_USUARIO%"           (Echo: CLSID_USUARIO         = %CLSID_USUARIO% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{59031A47-3F72-44A7-89C5-5595FE6B30EE}\DefaultIcon" /D "%IconsFolder%\%CLSID_USUARIO%" /F >NUL))
If defined CLSID_USUARIOS (IF EXIST "%IconsFolder%\%CLSID_USUARIOS%"         (Echo: CLSID_USUARIOS        = %CLSID_USUARIOS% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}\DefaultIcon" /D "%IconsFolder%\%CLSID_USUARIOS%" /F >NUL))
If defined CLSID_IMPRESORA (IF EXIST "%IconsFolder%\%CLSID_IMPRESORA%"       (Echo: CLSID_IMPRESORA       = %CLSID_IMPRESORA% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{A8A91A66-3A7D-4424-8D24-04E180695C7A}\DefaultIcon" /D "%IconsFolder%\%CLSID_IMPRESORA%" /F >NUL))
If defined CLSID_GAMES (IF EXIST "%IconsFolder%\%CLSID_GAMES%"               (Echo: CLSID_GAMES           = %CLSID_GAMES% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{ED228FDF-9EA8-4870-83b1-96b02CFE0D52}\DefaultIcon" /D "%IconsFolder%\%CLSID_GAMES%" /F >NUL))
If defined CLSID_RED (IF EXIST "%IconsFolder%\%CLSID_RED%"                   (Echo: CLSID_RED             = %CLSID_RED% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\DefaultIcon" /D "%IconsFolder%\%CLSID_RED%" /F >NUL))
If defined -32 (IF EXIST "%IconsFolder%\%-32%"                               (Echo: CLSID_PAPELERA_LLENA  = %-32% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon" /D "%IconsFolder%\%-32%" /F >NUL))
If defined -32 (IF EXIST "%IconsFolder%\%-32%"                               (Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon" /V "Full" /D "%IconsFolder%\%-32%" /F >NUL))
If defined -31 (IF EXIST "%IconsFolder%\%-31%"                               (Echo: CLSID_PAPELERA_VACIA  = %-31% & Reg ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon" /V "Empty" /D "%IconsFolder%\%-31%" /F >NUL))
Echo+
Echo: OK. | MORE | MORE
Goto :END


:UNDO
:: SHELL_FOLDERS
Echo+
Echo: [+] Deshaciendo cambios de iconos de las carpetas Shell... | MORE
Set "ORIGINAL_CONTACTS=IconResource=%SystemRoot%\system32\imageres.dll,-181"
Set "ORIGINAL_DESKTOP=IconResource=%SystemRoot%\system32\imageres.dll,-183"
Set "ORIGINAL_DOCUMENTS=IconResource=%SystemRoot%\system32\imageres.dll,-112"
Set "ORIGINAL_DOWNLOADS=IconResource=%SystemRoot%\system32\imageres.dll,-184"
Set "ORIGINAL_FAVORITES=IconResource=%SystemRoot%\system32\imageres.dll,-115"
Set "ORIGINAL_LINKS=IconResource=%SystemRoot%\system32\imageres.dll,-185"
Set "ORIGINAL_MUSIC=IconResource=%SystemRoot%\system32\imageres.dll,-108"
Set "ORIGINAL_PICTURES=IconResource=%SystemRoot%\system32\imageres.dll,-113"
Set "ORIGINAL_RECENT=IconResource=%SystemRoot%\system32\imageres.dll,-117"
REM SET "ORIGINAL_SAVED GAMES=IconResource=%SystemRoot%\system32\imageres.dll,-186"
SET "ORIGINAL_SEARCHES=IconResource=%SystemRoot%\system32\imageres.dll,-18"
SET "ORIGINAL_VIDEOS=IconResource=%SystemRoot%\system32\imageres.dll,-189"
For /F "Tokens=*" %%X in ('DIR /B /AD "%USERPROFILE%"') do (Attrib -A -R -S -H -I "%USERPROFILE%\%%X\desktop.ini" >NUL)
For %%X in (%Shell_Folders_Names%) do (
Type "%USERPROFILE%\%%X\desktop.ini" 2>NUL | Find /V /I "IconResource" > "%TEMP%\desktop.ini" && (
Echo !ORIGINAL_%%X! >>"%TEMP%\desktop.ini" && (
Echo:  %%X = !ORIGINAL_%%X!
Move /Y "%TEMP%\desktop.ini" "%USERPROFILE%\%%X\desktop.ini" >NUL
)
)
)
For /F "Tokens=*" %%X in ('DIR /B /AD "%USERPROFILE%"') do (Attrib +A +R +S +H +I "%USERPROFILE%\%%X\desktop.ini" >NUL)
Echo+
Echo: OK. | MORE | MORE

:: FILE_ICONS
Echo+
Echo: [+] Deshaciendo cambios de iconos de extensiones... | MORE
for /F "Tokens=1,3*" %%a in ('REG QUERY HKCR /f "BACKUP_FILE_ICON_AIR" /t REG_SZ /e /s') Do (
Reg Query "%%a" >NUL 2>&1 && (
for /F "Tokens=2,*" %%c in ('REG QUERY "%%a" /V "BACKUP_FILE_ICON_AIR"') Do (
echo [%%a]
Echo + "%%d" | MORE
Reg ADD "%%a" /d "%%d" /F >NUL
Reg delete "%%a" /v "BACKUP_FILE_ICON_AIR" /F >NUL
)
)
)
for /F "Tokens=1,3*" %%a in ('REG QUERY HKLM\SOFTWARE\CLASSES /f "BACKUP_FILE_ICON_AIR" /t REG_SZ /e /s') Do (
Reg Query "%%a" >NUL 2>&1 && (
for /F "Tokens=2,*" %%c in ('REG QUERY "%%a" /V "BACKUP_FILE_ICON_AIR"') Do (
echo [%%a]
Echo + "%%d" | MORE
Reg ADD "%%a" /d "%%d" /F >NUL
Reg delete "%%a" /v "BACKUP_FILE_ICON_AIR" /F >NUL
)
)
)
Echo+
Echo: OK. | MORE | MORE

:: Shell32.dll
Echo+
Echo: [+] Deshaciendo cambios de iconos del sistema (SHELL32.DLL)... | MORE
Echo: [-HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
Echo: [-HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
Echo: [-HKLM\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
Echo: [-HKCU\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]
Reg DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /F >NUL 2>&1
Reg DELETE "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /F >NUL 2>&1
Reg DELETE "HKLM\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /F >NUL 2>&1
Reg DELETE "HKCU\SOFTWARE\Wow6432node\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons"  /F >NUL 2>&1
Echo+
Echo: OK. | MORE | MORE

:: Start menu
Echo+
Echo: [+] Deshaciendo cambios de iconos del menu inicio... (CLSID)  | MORE
Echo: (Es mentira, Esta parte del script no esta acabada :P) | MORE | MORE
ECHO: Que alguien me pase los valores genérícos de las CLSID de Win7 para poder acabar esta parte xD | MORE
PAUSE
CLS


:END
DEL /Q /F "%userprofile%\AppData\Local\IconCache.db" /a 2>NUL
If /I NOT "%Restart_Explorer%" EQU "ON" (Exit /B 0)
start /W taskkill /IM explorer.exe /F  >NUL
start /B explorer.exe
Exit /B 0





Si sigue sin entender bien como funciona o como configurarlo, Aquí les dejo un ejemplo del script ya configurado... : http://pastebin.com/Q9B7QnZm
Y aquí un ejemplo más práctico: http://exoshare.com/download.php?uid=0PMRHGOU

Salu2








Binary_Death

Excelente aporte EleKtro.
Muy útil, realmente. Vamos a ver si me descargo un pack de iconos y lo pruebo  ;)

Eleкtro









Binary_Death

Testeado. Como era de esperar funciona perfectamente (Windows 7).

Está genial que además de hacer scripts como PoC se hagan cosas como estas que se pueden usar con frecuencia en el día a día para personalizar Windows  :P