Seite 1 von 3
Walpaper >>>-Code überarbeitet-<<<
Verfasst: 22.01.2006 19:08
von Tsuki-Namida
Hallo,
Ich möchte Herausfinden was für ein Hontergrungbild sich auf meinem Desktop befindet. Ich möchte es aber auch ändern können mit meinem Programm... wie kann ich das am besten machen?
Verfasst: 22.01.2006 19:09
von DarkDragon
Verfasst: 22.01.2006 19:25
von Tsuki-Namida
Hey das ist super Danke:)
Ich habe nichts gefunden wie ich das Aktuelle Wallpaper heraus finde....
Verfasst: 22.01.2006 19:34
von Macros
Der Registry-schlüssel ist
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
Wie du ihn ausliest findest du sicher.
Verfasst: 22.01.2006 19:50
von Tsuki-Namida
Wo und wie sucht man da ambesten?....
Verfasst: 22.01.2006 19:59
von Macros
Zum Beispiel mal "Registry auslesen" eingeben,
dann findet man dass hier:
Code: Alles auswählen
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
hKey.l=0
keyvalue.s=Space(255)
datasize.l=255
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
keyvalue="Error Opening Key"
Else
If RegQueryValueEx_(hKey,ValueName,0,0,@keyvalue,@datasize)
keyvalue="Error Reading key"
Else
keyvalue=Left(keyvalue,datasize-1)
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
Debug ReadRegKey(#HKEY_CURRENT_USER, "Software\Microsoft\Multimedia\Sound Mapper", "Playback")
Verfasst: 22.01.2006 20:29
von Tsuki-Namida
hmmm ich bekomme ein "Error Opening Key" ausgegeben....
Verfasst: 22.01.2006 20:39
von DarkDragon
Magix-Soft <Kain> hat geschrieben:hmmm ich bekomme ein "Error Opening Key" ausgegeben....
Code: Alles auswählen
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
hKey.l=0
keyvalue.s=Space(255)
datasize.l=255
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
keyvalue="Error opening key."
Else
If RegQueryValueEx_(hKey,ValueName,0,0,@keyvalue,@datasize)
keyvalue="Error reading key."
Else
keyvalue=Left(keyvalue,datasize-1)
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
Debug ReadRegKey(#HKEY_CURRENT_USER, "Control Panel\Desktop", "Wallpaper")
Verfasst: 22.01.2006 20:47
von Tsuki-Namida
Achso geht das .... jetzt weis ich auch was ich falsch gemacht habe... danke dir

Verfasst: 23.01.2006 16:16
von Tsuki-Namida
So da ich ja ein Hintergrund Bild setzen möchte habe ich diese Prozedure genommen:
Code: Alles auswählen
Procedure SetWallpaper(Val.s)
Shared DesktopPreferences_Lib
ProcedureReturn CallFunction(DesktopPreferences_Lib, "SHSetValueA", #HKEY_CURRENT_USER, "Control Panel\Desktop", "Wallpaper", #REG_SZ, Val, Len(Val)+1)
EndProcedure
Um ein Wallpaper zu setzen muss ich doch "SetWallpaper(C:\Wallpaper.jpg)" machen oder? gut ich habe es mit einem String gemacht... "SetWallpaper(String$)" nur ich bekomme einen Error "Invalid memory access."
in der Zeile:
ProcedureReturn CallFunction(DesktopPreferences_Lib, "SHSetValueA", #HKEY_CURRENT_USER, "Control Panel\Desktop", "Wallpaper", #REG_SZ, Val, Len(Val)+1)
Was habe ich da falsch gemacht?