PDA

Ver la Versión Completa : Posición del Wallpaper


madiazg
07-10-2007, 00:35:30
Hola,
desarrollo una aplicación donde he de eliminar el Wallpaper y una vez finalizada volver a fijarlo. Gracias a los trucos y al foro he podido conseguirlo pero me falta una cosa. ¿Como saber si el wallpaper está originalmente en posición mosaico, centrado ó extendido?
Saludos...
Miguel Angel

dec
07-10-2007, 00:39:30
Hola,

Fíjate en el truco Cambiar o quitar el papel tapiz del escritorio (http://www.clubdelphi.com/trucos/index.php?id=445&scroll=0&scrollb=0). Verás que ahí se puede establecer el papel tapiz en una de las tres "posiciones" soportadas. Pues bien... sabiendo qué valores del Registro de Windows han de estar establecidos para cada una de las posiciones, sería cuestión de leer dichos valores del Registro para determinar la posición del papel tapiz.

¿Te suena la clase TRegistry? Si buscas por los foros (http://www.clubdelphi.com/foros/search.php) encontrarás bastante información...

aeff
07-10-2007, 02:08:29
en el registro, en la clave "HKEY_CURRENT_USER\Control Panel\Desktop\" hay un valor alfanumerico llamado "TileWallpaper" y otro llamado "WallpaperStyle", que cuando tienen valor:

TileWallpaper ......... WallpaperStyle ............. es:
--- 0 ------------------- 0 ------------------ Centrada
--- 1 ------------------- 0 ------------------ En mosaico
--- 0 ------------------- 2 ------------------ Expandida

espero no haberme equivocado,

saludos
aeff!!

madiazg
07-10-2007, 16:55:20
Muchas gracias a los dos. Un pequeño ejemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
with TRegistry.Create do
try
RootKey := HKEY_CURRENT_USER;
if OpenKey('\Control Panel\Desktop\', False) then begin
Label1.Caption := ReadString('WallpaperStyle');
Label2.Caption := ReadString('TileWallpaper');
CloseKey;
end;
finally
Free;
end;
end;