Sem Göksu
Sem Göksu
Yazılım · Yolculuk · Fenerbahçe
C#

C# ile MASAÜSTÜ ARKAPLANINI DEGISTIRME

Merhaba arkadaslar, bu makalemizde C# ile Registry Class sinifini kullararak isletim sistemimizin masaüstü arkaplan resminin nasil degistirilecegine bakacagiz. <br /><br />Isletim sistemimiz üzerindeki neredeyse tüm ayarlar registry'de saklanir. Masaüstü arkaplan resmi de bunlardan bir tanesidir. Registery'e erismek için .Net Framework içerisinde Win32 namespace'nin altinda RegistryKey Sinifi bulunmaktadir. Bu sinif Kayit Defterinde bulunan registry degerleri okumamiza, silmemize ve degistirmemizi saglar. Özellikleri ve metodlari sunlardir.

13 Haziran 2008 2 dk okuma 3733 1
Merhaba arkadaslar, bu makalemizde C# ile Registry Class sinifini kullararak isletim sistemimizin masaüstü arkaplan resminin nasil degistirilecegine bakacagiz.

Isletim sistemimiz üzerindeki neredeyse tüm ayarlar registry'de saklanir. Masaüstü arkaplan resmi de bunlardan bir tanesidir. Registery'e erismek için .Net Framework içerisinde Win32 namespace'nin altinda RegistryKey Sinifi bulunmaktadir. Bu sinif Kayit Defterinde bulunan registry degerleri okumamiza, silmemize ve degistirmemizi saglar. Özellikleri ve metodlari sunlardir.

Isletim sistemimiz üzerindeki neredeyse tüm ayarlar registry'de saklanir. Masaüstü arkaplan resmi de bunlardan bir tanesidir. Registery'e erismek için .Net Framework içerisinde Win32 namespace'nin altinda RegistryKey Sinifi bulunmaktadir. Bu sinif Kayit Defterinde bulunan registry degerleri okumamiza, silmemize ve degistirmemizi saglar. Özellikleri ve metodlari sunlardir.

Name Özelligi
Anahtarin adini verir.

SubKeyCount Özelligi
Alt anahtar sayisini verir.

ValueCount Özelligi
Deger sayisini verir.  

OpenSubKey() Metodu

Bu metod bir deger okumak amaciyla kullanilir ve geriye registry'e kaydedilmis bir alt anahtar açar.

GetValue() Metodu

Seçilen anahtarin degeri gösterir.  

SetValue() Metodu

Seçilen anahtara yeni degeri atanir.

DeleteSubKey() Metodu

Alt anahtari siler.  

Close() Metodu

Açilan anahtari kapatir.

Evet kullanacagimiz metodlari inceledikten sonra  ilk olarak yeni bir proje açalim ve bir class ekleyelim.

Wallpaper.cs

using System;
using System.Runtime.InteropServices;
using System.Drawing;
using Microsoft.Win32;
namespace ChangeWallpaper
{
public class Wallpaper
{
const int SPI_SETDESKWALLPAPER = 20;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDWININICHANGE = 0x02;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int SystemParametersInfo( int uAction, int uParam, string lpvParam, int fuWinIni);

public enum Pozisyon : int
{
Tiled,
Centered,
Stretched
// Resmi Döse, Ortala, Sigdir
}

public void ArkaPlaniDegistir(string path, Pozisyon Pozisyon)
{
RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true); // Wallpaperin tutuldugu registry Key'i açiyoruz.
switch(Pozisyon) //Keye yeni degeri atiyoruz.
{
case Pozisyon.Stretched : key.SetValue(@"WallpaperPozisyon", "2") ;
key.SetValue(@"TileWallpaper", "0") ; break;
case Pozisyon.Centered : key.SetValue(@"WallpaperPozisyon", "1") ;
key.SetValue(@"TileWallpaper", "0") ; break;
case Pozisyon.Tiled : key.SetValue(@"WallpaperPozisyon", "1") ;
key.SetValue(@"TileWallpaper", "1") ; break;
}

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); // Ayarlari Kaydediyoruz.
     }
   }
}

 

Simdi bir form ekleyelim ve içine bir tane buton koyalim.

C:\ArkaPlan\Kediler.Bmp isimli bir resim koydum ve oradaki resim de iste burada :)

 

Simdi masaüstümüzdeki resmi degistirecek kodu yazalim ve buton'a tiklayalim.

Button1.Click

private void button1_Click(object sender, EventArgs e)
{
Wallpaper w = new Wallpaper();
w.ArkaPlaniDegistir("c:\\ArkaPlan\\Kediler.bmp", Wallpaper.Pozisyon.Centered);
// Burada enum içerisinde yer alan farkli özellikleri kullanarak farkli sonuçlar elde edebiliriz.
}

Butona tikladim ve sonuç :)

Bir sonra ki makalemiz de görüsmek üzere. Iyi çalismalar dilerim.

Sem Göksu
sem.goksu@yazilimgunlugu.com
www.semgoksu.com | www.yazilimgunlugu.com

Kaynaklar
http://www.msdn.com

Etiketler: #C# #C# 2.0
Paylaş:

Yorumlar (1)

O
Oktay Karakaya 28 Haz 2015 11:24

Kod çalışmıyor. Windows 7 Starter'da normalde zaten arkaplan değiştirme olayı yok. Bu duruma çözüm getirmek için yazacaktım basit bir program ama bu kodlar fayda etmiyor. Orjinal görüntü değişmiyor.

Yorum bırak

* Yorumlar moderasyon sonrası yayınlanır. E-posta gizli tutulur.