Usando Tweak UI

http://www.microsoft.com/windowsxp/Downloads/powertoys/Xppowertoys.mspx

Aquí hay algunas herramientas para XP, en este caso descargaríamos Tweak UI que nos servirá para personalizar XP o 2003.

Este pequeño programa o herramienta nos permitirá personalizar nuestro Windows (XP o 2003) en algunos aspectos en los que no encontraremos interface para ello y en los que deberíamos acudir al registro.

Es fácil de instalar, luego accederemos desde Inicio, todos los programas, Powertoys for Windows y TweakUI. En el panel izquierdo elegiremos la categoría y en el derecho editamos la configuración a cambiar deseada.

tweakui01 tweakui02

El programa de por sí es suficientemente aclarador, podemos ver una descripción de cada valor a ajustar al final de la ventana. Nos indicará si el valor es por-usuario o por-equipo. Para que tome efecto hemos de tener en cuenta que por-usuario se necesitará algunas veces cerrar y volver a iniciar sesión. Por-equipo afectará a todos los usuarios que inicien sesión en el equipo.

Categorías

General

tweakUI_general

En la categoría General los elementos de la lista de configuración pueden activarse o desactivarse.

Config.

Nombre

Tipo

Datos

llave

Beep on errors Beep REG_SZ Yes|No HKCUControl PanelSound
Enable combo box animation UserPreferencesMask REG_BINARY Bit 0x0004 HKCUControl PanelDesktop
Enable cursor shadow UserPreferencesMask REG_BINARY Bit 0x2000 HKCUControl PanelDesktop
Enable list box animation UserPreferencesMask REG_BINARY Bit 0x0008 HKCUControl PanelDesktop
Enable menu animation UserPreferencesMask REG_BINARY Bit 0x0002 HKCUControl PanelDesktop
Enable menu fading UserPreferencesMask REG_BINARY Bit 0x0200 HKCUControl PanelDesktop
Enable menu selection fading UserPreferencesMask REG_BINARY Bit 0x0400 HKCUControl PanelDesktop
Enable mouse hot tracking effects UserPreferencesMask REG_BINARY Bit 0x0080 HKCUControl PanelDesktop
Enable tooltip animation UserPreferencesMask REG_BINARY Bit 0x0800 HKCUControl PanelDesktop
Enable tooltip fade UserPreferencesMask REG_BINARY Bit 0x1000 HKCUControl PanelDesktop
Show Windows version on desktop PaintDesktopVersion REG_DWORD 0x00|0x01 HKCUControl PanelDesktop
Enable Windows animation MinAnimate REG_SZ 0|1 HKCUControl PanelDesktopWindowMetrics
Optimize hard disk when idle EnableAutoLayout REG_DWORD 0|1 HKLMSOFTWAREWindows
CurrentVersionOptimalLayout

General-Focus

tweakUI_general-focus

Cuando una aplicación necesita tu atención –o simplemente quiere molestarte- te quita el foco de la aplicación en la que estás trabajando. Esto lleva a cambiar de ventana atrás/delante. La configuración en Focus dentro de General impide que ocurra esto.

Prevent applications from stealing focus ForegroundLockTimeout REG_DWORD N HKCUControl PanelDesktop
Flash taskbar button until I click on it ForegroundFlashCount REG_DWORD 0x00 HKCUControl PanelDesktop
Flash taskbar button N times ForegroundFlashCount REG_DWORD N HKCUControl PanelDesktop

General-ALT+TAB

tweakUI_general-ALT-TAB

Aquí se configura el número de filas y columnas que podemos ver cuando presionamos ALT+TAB. El valor REG_SZ es CoolSwitchRows para filas y CoolSwitchColumns para las columnas. Ambas en HKCUControl PanelDesktop. Aquí hay que tener cuidado en no configurar demasiadas filas y/o columnas que no quepan en la pantalla. Para que se habilite el cambio hay que cerrar sesión y volve ra iniciar.

El Registro: Menú de Inicio

Os recuerdo que lo de modificar el registro es peligrosillo, así que una copia antes de nada es lo más recomendable. También os recuerdo que la mayoría de cambios y modificaciones no son para Windows Vista-7, sino para 2003/XP.

 

Para personalizar el menú inicio se disponen de opciones como la propia interfaz de usuario: clic derecho en la barra de tareas y propiedades; O el uso de TWEAK UI por ejemplo, además hay docenas de políticas que controlan el comportamiento del menú de inicio, aunque puede que no nos sean de demasiada utilidad por la dificultad de realizar scripts o implementarlas en los grupos de usuarios o usuarios avanzados.

Veamos como configurarlo para impedir la aparición de programas, o en la lista de programas más usados, de restaurar el orden si no lo vemos alfabéticamente.

También podemos preparar scripts para el caso de reinstalar Windows o quizás una nueva instalación, y tenemos nuestra personalización, también si queremos desplegarla como perfiles de usuario.

Primero debemos conocer donde se encuentran en el registro: HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAvanced.

RegSTARTMENU

Menú clásico:

StartMenuAdminTools 0x00 – Oculta las herramientas administrativas
0x01 – Las muestra
CascadeControlPanel NO – lo muestra como un enlace
YES –lo muestra como un menú
CascadeMyDocuments NO – lo muestra como un enlace
YES –lo muestra como un menú
CascadeMyPictures NO – lo muestra como un enlace
YES –lo muestra como un menú
CascadePrinters NO – lo muestra como un enlace
YES –lo muestra como un menú
IntelliMenus 0x00 – No usa menús personalizados
0x01 – Usa menús personalizados
CascadeNetworkConnections NO – lo muestra como un enlace
YES –lo muestra como un menú
Start_LargeMFUIcons 0x00 – Muestra iconos pequeños en el menú
0x01 – Muestra iconos grandes en el menú
StartMenuChange 0x00 – Deshabilita arrastrar y soltar
0x01 – Habilita arrastrar y soltar
StartMenuFavorites 0x00 – Oculta los favoritos
0x01 – Muestra los favoritos
StartMenuLogoff 0x00 – Oculta cierre de sesión
0x01 – Muestra cierre de sesión
StartMenuRun 0x00 – Oculta el comando ejecutar
0x01 – Muestra el comando ejecutar
StartMenuScrollPrograms NO -  sin desplazamiento del menú
YES – con desplazamiento

 

Menú de inicio:

Start_ShowControlPanel 0x00 – Oculta el Panel de control
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_EnableDragDrop 0x00 – Deshabilita arrastrar y soltar
0x01 – Habilita arrastrar y soltar
StartMenuFavorites 0x00 – Oculta los favoritos
0x01 – Muestra los favoritos
Start_ShowMyComputer 0x00 – Oculta MI PC
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_ShowMyDocs 0x00 – Oculta Mis Documentos
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_ShowMyMusic 0x00 – Oculta Mi música
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_ShowMyPics 0x00 – Oculta Mis imágenes
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_ShowNetConn 0x00 – Oculta Conexiones de red
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_AdminToolsTemp 0x00 – Oculta Herramientas Administrativas
0x01 – Lo muestra como un enlace
0x02 – Lo muestra como un menú
Start_ShowHelp 0x00 – Oculta Ayuda y soporte
0x01 – Muestra Ayuda y soporte
Start_ShowNetPlaces 0x00 – Oculta sitios de red
0x01 – Muestra sitios de red
Start_ShowOEMLink 0x00 – Oculta el enlace de OEM
0x01 – Muestra el enlace de OEM
Start_SHowPrinters 0x00 – Oculta Impresoras y faxes
0x01 – Muestra Impresoras y faxes
Start_ShowRun 0x00 – Oculta comando ejecutar
0x01 – Muestra comando ejecutar
Start_ShowSearch 0x00 – Oculta Buscar
0x01 – Muestra Buscar
Start_ScrollPrograms 0x00 – con desplazamiento de menú
0x01 – sin desplazamiento de menú

El registro: seguimos modificando

Os recuerdo que lo de modificar el registro es peligrosillo, así que una copia antes de nada es lo más recomendable. También os recuerdo que la mayoría de cambios y modificaciones no son para Windows Vista-7, sino para 2003/XP.

Personalizar las asociaciones de archivo

Las asociaciones de archivo controlan diversos aspectos de como trata Windows a los archivos:

  • El icono que muestra el archivo.
  • La aplicación que se ejecutará cuando hacemos doble clic en un archivo.
  • Como muestra el explorador en pantalla los tipos de archivo.
  • Que comando aparece en los menús de accesos directos de los archivos.
  • Algunas otras menores.

La mayor parte del contenido del registro se encuentra en HKCR, que es donde Windows XP y Windows Server 2003 guardan las asociaciones de archivo y los registros de clase. Estos valores asocian distintos tipos de archivos con los programas que los pueden abrir, editar e imprimir con ellos. También se registran distintas clases de programas con las que Windows puede crear objetos usándolas.

Muchas de las personalizaciones que podemos hacer no dejan de ser simples en la llave HKCR. Añadir comandos a las asociaciones de archivo para carpetas, como abrir una ventana de símbolo del sistema con la carpeta elegida como directorio, añadir comandos a MI PC para abrir rápidamente el registro o TweakUI. Si dominamos los contenidos de HKCR, las oportunidades de modificar Windows, para verlo y sentirlo como queremos, son ilimitadas.

La llave HKCR era un enlace a HKLMSOFTWAREClasses antes de Windows 2000, pero ahora es más complicado. Windows mezcla HKLMSOFTWAREClasses con HKCUSoftwareClasses . Los datos en la primera son las asociaciones y registros de clase predeterminados mientras en la segunda son los mismos datos por-usuario. La llave HKCUSoftwareClasses es realmente un enlace a HKUSID_Classes que carga Windows cuando carga el archivo de sección del perfil en HKUSID. Si el valor es el mismo en las dos ramas, el valor HKCU tiene mayor precedencia sobre el valor en HKLM.

De hecho nos sirve para que usuarios instalen aplicaciones y usen asociaciones de archivo que no afecten a otros usuarios, es decir, dos usuarios que usan distintos programas para abrir el mismo tipo de archivo.

En cuanto se crea una nueva llave en HKCR Windows la crea en HKLMSOFTWAREClasses. Windows no proporciona ninguna interfaz de usuario, aparte del editor del registro, para agregar registros de clase en HKCUSoftwareClasses porque la intención es permitir a los programas registrar sus clases por-usuario. Cuando editamos una clase existente, sin embargo, el cambio se refleja tanto en HKLM como en HKCU, dependiendo de donde exista ya la clase. Si existe en ambas Windows sólo actualiza la de HKCU.

Los archivos que contienen tipos de datos particulares normalmente tienen la misma extensión. Office = *.doc. Aunque la norma general de las extensiones son tres caracteres éstas pueden ser más largas. Los archivos con la misma extensión son miembros de una clase de archivo. Las clases de archivos definen comportamientos comunes para todos los archivos que comparten la misma extensión. Al personalizar las asociaciones de archivo, podemos especificar que aplicación los abre, añade comandos en el acceso directo, o indicar un icono específico que se nos mostrará en el explorador para ese tipo de archivo.

Las asociaciones se dividen en dos. La primera es una llave de extensión de archivo, HKCR.ext. Cuando Windows necesita información sobre el tipo de archivo, mira en esa llave. El valor predeterminado de la llave contiene el nombre de la clase del programa asociado con ella, que es la segunda parte. Las clases de programas están en HKCRidentificador_de_programa, donde identificador_de_programa es el ID de la aplicación. El valor predeterminado es el nombre corto de la aplicación. Por ejemplo: HKCR.txt tiene como valor predeterminado txtfile. Si buscamos en la llave el programa asociado, encontraremos la descripción Text File.

txtclass

Las llaves de extensión de archivo pueden tener varias sub-llaves y valores, como se puede ver en la imagen, los más comunes:

OpenWithList. Aquí hallaremos una o más llaves con una relación de nombres de las aplicaciones que aparecen en la lista de programas recomendados cuando le damos al clic derecho y luego en Abrir con.

PerceivedType. Este valor REG_SZ indica el tipo percibido del archivo.  XP y 2003 son los únicos que la utilizan.

ShellNew. Esta sub-llave define una plantilla desde la que Windows crea un nuevo archivo cuando el usuario escoge ese tipo de archivo en el menú Nuevo.

Content Type. Valor REG_SZ que indica el tipo MIME.

OpenWithProgids. Aquí hay una lista de clases de programa asociados con la extensión de archivo. Windows los muestra en la lista de otros programas en Abrir con.

 

Ejecución de programas desde MI PC

La personalización debe hacernos las cosas más fáciles. Hay programas que utilizamos una y otra vez y queremos tenerlos en algún sitio de fácil y rápido acceso. La barra quick launch parece un lugar idóneo como la lista de programas de más uso del menú inicio. También queremos un sitio donde dispongamos de comandos que con un simple clic podamos disponer de ellos.

Para añadir comandos al menú de acceso directo a MI PC, editamos su registro de clase: HKCRCLSID{20D04FE0-3AEA-1069-A2D8-08002B30309D}. Un ejemplo:

Voy a añadir mspaint.exe, que se encuentra en c:windowsSystem32mspaint.exe como un comando al hacer clic derecho en MI PC.

Edito la llave indicada:

  1. Añado una nueva clave bajo la sub-llave SHELL, y la llamo MSPaint, como valor predeterminado pongo MS Paint.
  2. Añado una nueva clave bajo MSPaint llamada Command, con valor predeterminado c:windowsSystem32mspaint.exe.

comandoaMIPC

El resultado es…

resultadomspaint

Abrir la ventana de símbolo de comando en un directorio

Otra de las personalizaciones más comunes es abrir una ventana de sistema en un directorio en concreto, para ello añadiremos un comando a las clases Directory y Drive. Así que cuando hagamos clic derecho en cualquier carpeta y pulsemos en la opción abrir CMD aquí, tendremos la ventana con el directorio deseado.

  • Creamos la sub-llave cmdaqui en HKCRDirectoryshell.

cmdaqui01

  • Establecemos el valor predeterminado en Ventana Sistema Aquí
  • creamos la sub-llave Command y le establecemos como valor predeterminado: C:WindowsSystem32cmd.exe /k cd “%1”

cmdaqui02

Y el resultado:

cmdaqui03

El Registro: Modificándolo

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.

REGspecialfolders

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.

 

REGspecialfoldersPaths 

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.

registro05 

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.

registro06

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.

panelCategory 

Por ejemplo: para colocar la herramienta de Sistema en la categoría Apariencia y temas:

ANTES:

aparienciaANTES

Establecemos el sysdm.cpl de la llave mencionada a 0x01:

regCHANGECONTROLPANEL 

DESPUÉS:

aparienciaDESPUES