Modificaciones que pueden personalizar nuestro Windows sin usar el interfaz de usuario.
Registro de XP y 2003, ********no VISTA-W7.********
Las carpetas especiales
Digamos que son aquéllas que cuelgan del perfil de usuario, %userprofile%, y que son:
AppData |
%usuario%Datos de Programa |
Cache |
%usuario%Configuración LocalArchivos Temporales de Internet |
Cookies |
%usuario%Cookies |
Desktop |
%usuario%Escritorio |
Favorites |
%usuario%Favoritos |
History |
%usuario%Configuración LocalHistorial |
Local AppData |
%usuario%Configuración LocalApplication Data y/o Datos de Programa |
Local Settings |
%usuario%Configuración Local |
My Pictures |
%usuario%Mis documentosMis imágenes |
NetHood |
%usuario%Entorno de Red |
Personal |
%usuario%Mis documentos |
PrintHood |
%usuario%Impresoras |
Programs |
%usuario%Menú InicioProgramas |
Recent |
%usuario%Reciente |
SendTo |
%usuario%SendTo |
Start Menu |
%usuario%Menú Inicio |
Startup |
%usuario%Menú InicioProgramasInicio |
Templates |
%usuario%Plantillas |
Cada valor de la llave KHCUSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders es una carpeta especial, como las vistas arriba.
Como se puede ver los valores son del tipo REG_EXPAND_SZ por lo que se usan variables de entorno, usar %USERPROFILE% en la ruta dirige la carpeta a una ubicación dentro de las carpetas del perfil del usuario, o podríamos usar %USERNAME% para que fuesen nombres de usuario.
En el caso de un entorno de GRUPO DE TRABAJO (NO LO NECESITAMOS EN UN ENTORNO DE DIRECTORIO ACTIVO AD) podríamos redirigir cualesquiera de estas carpetas a un recurso compartido de la red, por ejemplo: \Equipo_que_comparteRecurso_compartido%USERNAME%CARPETA_A_REDIRIGIR. Ahora en cuanto inicie sesión un usuario, Windows creará/actualizará la llave, KHCUSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders, con las rutas de la llave de la imagen anterior, que es la que usará Windows.
Redirect.inf
1: [Version]
2: Signature=$CHICAGO$
3:
4: [DefaultInstall]
5: AddReg=Reg.Settings
6: AddReg=Reg.Unistall
7: CopyFiles=Inf.Copy
8:
9: [DefaultUninstall]
10: DelReg=Reg.Settings
11: DelReg=Reg.Unistall
12: DelFiles=InfCopy
13:
14: [Reg.Settings]
15: HKCU,SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders, AppData, 0x20000, "%APPDATA%"
16: HKCU,SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders, Personal, 0x20000, "%PERSONAL%"
17: HKCU,SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders, My Pictures, 0x20000, "%PICTURES%"
18: HKCU,SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders, Favorites, 0x20000, "%FAVORITES%"
19:
20: [Reg.Uninstall]
21: HKCU,SoftwareMicrosoftWindowsCurrentVersionUnistall%NAME%
22: HKCU,SoftwareMicrosoftWindowsCurrentVersionUnistall%NAME%,DisplayName,,"%NAME%"
23: HKCU,SoftwareMicrosoftWindowsCurrentVersionUnistall%NAME%,UninstallString,,"RunDll32.exe setupapi.dll, InstallHinfSection DefaultInstall 132""%53%Application DataCustomRedirect.inf"
24:
25: [Inf.Copy]
26: Redirect.inf
27:
28: [DestinationDirs]
29: Inf.Copy=53,Application DataCustom
30:
31: [SourceDisksNames]
32: 55=%DISKNAME%
33:
34: [SourceDisksFiles]
35: Redirect.inf=55
36:
37: [Strings]
38: NAME = "Carpetas redirigidas usuario"
39: APPDATA ="\ServidorCarpetas%UserName%Datos de Programa"
40: PERSONAL ="\ServidorCarpetas%UserName%Mis Documentos"
41: PICTURES ="\ServidorCarpetas%UserName%Mis DocumentosMis Imágenes"
42: FAVORITES ="\ServidorCarpetas%UserName%Favoritos"
43: DISKNAME = "Setup Files"
Las carpetas especiales son ‘por usuario’ y están dentro de los perfiles de los mismos. Hay unas carpetas especiales también ‘por equipo’ en HKLM, pero no parece demasiado útil el personalizarlas, aunque se les aplican las mismas reglas.
Shell Folders
Algunas de las carpetas que vemos en el explorador de Windows, Panel de Control, Escritorio, … no existen actualmente en el sistema de archivos. Son objetos basados en clases registradas en la llave HKCRCLSID. Algunas de las carpetas que existen en el sistema de archivos (historial o maletín por ejemplo) tienen la especial característica de convertirse en objetos basados en clases registradas en HKCRCLSID. Una clase esencialmente es una plantilla para crear algo real, como un objeto en el interfaz de usuario, y CLSID es el lugar donde esas clases se registran para que Windows lo sepa todo de ellas.
Programas de terceros pueden añadir clases, y que nosotros podemos fácilmente encontrar ya que disponen de la sub-llave ShellFolder y dentro el valor Attributes.
Los registros de clases que contienen el valor LocalizedString son firmes candidatas a personalizar ya que contienen dicho valor sólo si objetos basados en la clase aparecen en el interfaz de usuario.
Algunas de las clases registradas que pueden ser interesantes: My computer, My Network places, My documents, Start menu, Web, Administrative tools, Printers and faxes, Folder options, User accounts, …
Podemos personalizar las carpetas que se verán en My Computer (MI PC) por ejemplo, o renombrar iconos del escritorio que no disponen del comando renombrar, etc…
Por ejemplo: Localizamos la clase que pertenece a la papelera de reciclaje, y cambiamos el valor de LocalizedString por el nombre que queremos, vamos al escritorio, F5 y ya está. En este caso el valor contenía la cadena @%SystemRoot%System32SHELL32.dll,-8964, que significa que Windows usa la cadena con el identificador 8964 del archivo SHELL32.dll.
Esta sub-llave, LocalizedString, es del tipo REG_EXPAND_SZ, por lo que podemos usar variables de entorno también, al estilo %UserName%.
La ausencia de ésta sub-llave indica que no se muestra su nombre en el interfaz de usuario, aunque a veces sólo hay que añadirla a la clase y darle un valor.
La sub-llave DefaultIcon representa el icono que muestra el objeto al mostrarse en pantalla, podemos cambiar el valor predeterminado para usar otro icono. Para ello usaremos la ruta y nombre de un archivo .ico, o una ruta de recurso, Nombre,Índice, donde Nombre es la ruta del archivo que contiene el icono e índice el número de identificación del mismo.
Los siguientes cambios, en SOFTWAREMicrosoftWindowsCurrentVersionExplorer, afectarán a todos los usuarios si se realizan bajo HKLM o a un usuario individual si los hacemos bajo HKCU.
Añadir Iconos al escritorio
Editamos las sub-llaves mencionadas y añadimos una nueva sub-llave dentro de DesktopNameSpace o ControlPanelNameSpace o My ComputerNameSpace, con su ID de clase como nombre.
Ocultar Iconos del escritorio
Para ocultar los iconos en MI PC bastaría con añadir la sub-llave HideMyComputerIcons de tipo REG_DWORD con el nombre del ID de la clase del icono a ocultar y el valor 0x01.
En el caso del escritorio, HideDesktopIcons que debe contener dos sub-llaves: ClassicStartMenu y NewStartPanel. La primera oculta iconos cuando se usa el menú de inicio clásico, mientras la segunda es sobre el nuevo inicio. Se añade un REG_DWORD con el nombre del ID de clase del icono y el valor 0x01.
Panel de control
El panel de control en xp incluye una vista por categoría, que divide tareas específicas e iconos del panel en distintas categorías.Podemos añadir un icono del panel en una categoría particular añadiendo un valor REG_DWORD en la llave HKLMSOFTWAREMicrosoftWindowsCurrentVersionControl PanelExtended Properties{305CA226-D286-468E-B848-2B2E8E697B74} 2. La mayoría ya tiene valores en esta llave por lo que todo lo que hemos de hacer es asignar un ID de categoría a cada una.
ID de categoría
|
Categoría
|
0x00000000 |
Otras opciones del panel de control (sin categoría) |
0x00000001 |
Apariencia y temas |
0x00000002 |
Impresoras y otro hardware |
0x00000003 |
Conexiones de Red e Internet |
0x00000004 |
Dispositivos de sonido, audio y voz |
0x00000005 |
Rendimiento y mantenimiento |
0x00000006 |
Opciones regionales, de idioma, y de fecha y hora |
0x00000007 |
Opciones de accesibilidad |
0xFFFFFFFF |
Este indica la no pertenencia a cualquier categoría y es para herramientas especiales que inician directamente, como Agregar o quitar programas. |
Por ejemplo: para colocar la herramienta de Sistema en la categoría Apariencia y temas:
ANTES:
Establecemos el sysdm.cpl de la llave mencionada a 0x01:
DESPUÉS: