C/C++: Desktophintergrund über Registy

Hallo!

Ich versuche mit einem C Code das Wallpaper zu ändern, aber irgendwas mach ich falsch:

Code:
	char placewallpaper []	= "S-1-5-21-448539723-789336058-1343024091-500\\Control Panel\\Desktop";
	char keyname		[]	= "Wallpaper";
	char dark			[]		= "C:\\WINDOWS\\Web\\Wallpaper\\dark.jpg";
	char idylle			[]		= "C:\\WINDOWS\\Web\\Wallpaper\\Grüne Idylle.bmp";



		if ((LOWORD (wParam) == 66) && (hChe6 ==TRUE))
			{
				
				if (RegCreateKeyEx(hKey, (LPCTSTR) placewallpaper,
					0, NULL, 0, 0, NULL, &hKey, &dwDisposition)== 
					ERROR_SUCCESS)
				{
				
					RegSetValueEx (hKey, keyname, 0, REG_SZ, (BYTE *) dark, strlen (dark));
					RegCloseKey (hKey);
				}

				//SystemParametersInfo (SPI_SETDESKWALLPAPER, (unsigned int ) idylle,(void *) sizeof (idylle), MAX_PATH);
				
				/*
				RegOpenKeyEx	(hKey, (LPCTSTR) placewallpaper,0, KEY_ALL_ACCESS,&hKey2);
				RegSetValueEx	(hKey2, keyname, 0, REG_SZ, (BYTE *) dark, strlen (dark));
				RegCloseKey		(hKey2); */

				MessageBox (hwnd, "Dark Apokalypse", "Wallpaper", MB_ICONINFORMATION);

			}

Ich poste mal nur den Teil mit der Registry. Wenn ich auf den Button klicke wird die Message gesendet, aber es passiert nichts. Also liegt es nicht an der If - Bedingung, sondern nur am Registry Code. Das was in den Kommentaren steht hab ich auch noch ohne Erfolg versucht.

Was mach ich falsch?

Für Hilfe vielen Dank.

mfG
Bleeding666
 
Zurück
Oben