| Autor |
Beitrag |
Killi
      
Beiträge: 299
Win*
D6 Prof
|
Verfasst: So 24.11.02 22:33
DIe Überschrift sagt alles: Wie mache ich das am besten??? Windows den Pfad eines Hintergrundbildes zuweisen!?!?
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: So 24.11.02 22:41
Hi,
schon mal in der Registry gesucht ?
Ich habe das mal für Dich erledigt :
HKEY_CURRENT_USER\Control Panel\Desktop
Einfach den Wert Wallpaper ändern.
Name : Wallpaper
Typ : REG_SZ
Wert : <<Pfad zu Deinem Hintergrundbild>>
Danach mußt Du Dich neu anmelden bei den Systemen Win200, NT4.0, XP und bei den restlichen neustarten.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 24.11.02 22:53
Schon mal die Suche bemüht? Ode rmal in dei FAQ's geschaut? 
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 25.11.02 00:37
Mußte was in der FAQ unter Sonstiges sein.
|
|
patmann2001
      
Beiträge: 201
Windows 7 Prof.
Delphi XE2
|
Verfasst: Mo 25.11.02 21:10
Schau mal unter diesen beiden Links nach:
www.auq.de/viewtopic...;highlight=wallpaper
Der ist von mir und damit sollte eigentlich alles klar sein.
cu Patmann
|
|
Killi 
      
Beiträge: 299
Win*
D6 Prof
|
Verfasst: Sa 30.11.02 19:51
Hi!
Und wie starte ich jetzt dieses hier:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function bild_wechsel(dateiname:STRING):BOOLEAN; BEGIN if NOT SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Pointer (dateiname), SPIF_SENDWININICHANGE) then begin Result:=false; end ELSE BEGIN Result := true; END; end; | ???
da passiert bei mir nichts bzw. es kommen ein haufen Fehler - habe versucht die Funkction zu deklarieren(bei den Procedures), aber das will er nicht - wie denn dann?
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Sa 30.11.02 20:04
Guter Mann. Hast du nicht festgestellt, daß der Link von patmann2001 zu einem Problem von patmann2001 führt. Es gibt zig Lösungen, auch in dem Thread von patmann2001. Und welchen Code nimmst du? Den von patmann2001 den er gepostet hat und mit dem er Problemme hat. Du liest dir garnicht seine Problemstellung durch. Nein. Der erste Blick fällt auf das erste grüne Stück Code und das kopierst du in dein Programm. Und jetzt soll einer dir sagen wieso das nicht funktioniert.
(01.12. 11:01 Tino) Absatz entfernt.
Das muß man sich vorstellen: unter den ganzen Codes wählst du den Problemcode.
|
|
Killi 
      
Beiträge: 299
Win*
D6 Prof
|
Verfasst: Sa 30.11.02 21:18
*quengel, quengel, quengel*
(01.12. 11:02 Tino) Satz entfernt.
tut mir ja leid, aber hast DU dir den Post mal genauer durchgelesen? Dann wär dir auch aufgefallen dass er nur Probleme mit dem "Namen des Bildes" und dem kacheln/strecken hatte - und nicht mit dem HintergrundWECHSEL, oder? Außerdem hab ich kein Plan wie man mit funktionen umgeht
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Sa 30.11.02 22:22
Bei Funktionen mußt Du die Werte in der Klammer mit übergeben.
Beispiel : Quelltext 1: 2: 3: 4: 5: 6: 7:
| function test1(var test:String); begin // Deine Anweisungen end;
//Aufruf der Funktion test1('Test'); |
Dann kannst Du auch noch Funktionen schreiben Die Dir einen Wert zurückgeben.
Beispiel : Quelltext 1: 2: 3: 4: 5: 6: 7:
| function test2(var zahl1,zahl2:Integer):Integer begin result := zahl1 + zahl2; end;
// Aufruf der Funktion Label1.Caption := IntToStr(test2(5,5)); |
Ich hoffe ich habe nichts vergessen, aber daß sollte erstmal reichen dieser kleine Crashkurs.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 30.11.02 22:30
Quelltext 1: 2: 3: 4: 5: 6: 7:
| function test1(var test:String); begin // Deine Anweisungen end;
//Aufruf der Funktion test1('Test'); |
Dürfte dir kein Compiler compilieren!
Wenn du auf ein Objekt der Form zu greifen mußt, dann schreib die Deklaration der Funktion in den published Abschnitt der Klasse TForm. Ansonsten reicht es, wenn du sie vor dem ersten Aufruf nach Implementation implementierst.
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Sa 30.11.02 23:42
In der FAQ sind so wunderbare Funktionen die Fehlermeldungsfrei funktionieren. Aber nimmt er die? Nein. Er will Hintergründe wechseln, kann aber mit einer Funktion nicht umgehen. Da er also nicht mit der Funktion umgehen kann, wird er mit den Rückgabewerten auch nichts anfangen können. Also sollte er das ganz weglassen:
Quelltext 1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar('c:\100.bmp'), SPIF_SENDWININICHANGE) end; |
|
|
Killi 
      
Beiträge: 299
Win*
D6 Prof
|
Verfasst: Mo 02.12.02 20:34
Danke, aber das funkzt bei mir nicht - wird zwar alles in Win.ini geshrieben, aber wie schon erwähnt nicht aktualisiert! Hab mal das hier benutzt:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TForm1.SetWallpaperSystem(sWallpaper: String; bTile, bStrech: Boolean); var Reg : TRegIniFile; begin Reg := TRegIniFile.Create('Control Panel\Desktop'); with Reg do begin WriteString('', 'Wallpaper', sWallpaper);
if bTile then WriteString('', 'TileWallpaper', '1') else WriteString('', 'TileWallpaper', '0'); if bStrech then WriteString('', 'WallpaperStyle', '2') else WriteString('', 'WallpaperStyle', '0'); end; Reg.Free;
//Aktualisiert das Hintergrundbild SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);
Application.ProcessMessages; end;
procedure TForm1.Button1Click(Sender: TObject); var Wall: string; begin Wall:= 'C:\0.BMP'; SetWallpaperSystem(Wall, False, False); end; |
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 02.12.02 20:52
| Killi hat folgendes geschrieben: | | Danke, aber das funkzt bei mir nicht - wird zwar alles in Win.ini geshrieben, ... |
Sicher funktioniert das. Wenn ich auf etwas antworte und mir nicht sicher bin, dann schreibe ich "ungeprüft" dazu. Den Code aber, den ich dir zuletzt gepostet habe, hab ich ausprobiert. Bei mir funktioniert er. Vielleicht hast du den Pfad nicht richtig angegeben.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 02.12.02 22:17
Ich weiß nicht, sollte man nicht noch irgendwo den RootKey angeben? Und den Pfad habe ich auch noch nie als Create-Parameter übergeben.-
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Di 03.12.02 06:54
Meine letzte Aussage bezog sich auf:
Quelltext 1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar('c:\100.bmp'), SPIF_SENDWININICHANGE) end; |
Den hab ich getestet und er funktioniert.
Der andere Code mit der Übergabe in Reg braucht kein RootKey, da es sich um TReg IniFile handelt. TRegIniFile geht automatisch von HKEY_USER\DEFAULT aus.
|
|
ConnyCarl
Hält's aus hier
Beiträge: 14
|
Verfasst: Mi 04.12.02 10:29
Titel: aber nicht auf anderen rechner
doch wie sieht es bei anderen rechner aus ???
auf meinem rechner läuft die änderung des hintergrundbildes, doch nicht bei meinem freund. er hat das gleich betriebssystem wie ich.
danke für die antwort.
gruß conny
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 04.12.02 10:35
Stimmt der Pfad zum neuen Hintergrundbild? 
|
|
Killi 
      
Beiträge: 299
Win*
D6 Prof
|
Verfasst: Mi 04.12.02 20:36
eben - bei mir geht es eben auch nicht! Habe Delphi 4, hat das was damit zu un? Außerdem Win98 SE...
|
|
ConnyCarl
Hält's aus hier
Beiträge: 14
|
Verfasst: Do 05.12.02 13:56
Titel: jetzt läufts auch unter win95, win98 und winxp
das sind jedenfalls die betriebssysteme auf denen ich es ausprobieren konnte. ich arbeite auch mit delphi4, hier der code:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.UebernameClick(Sender: TObject); var FileSave : String; Reg : TRegIniFile; begin Reg := TRegIniFile.Create('Control Panel\Desktop'); FileSave := 'C:\Windows\HBLosung.bmp'; Hgbild.Picture.SaveToFile(FileSave); Reg.WriteString('', 'Wallpaper', FileSave); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE) end; |
ich hoffe es konnte dir weiter helfen, mir hats
gruß conny
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 05.12.02 15:20
Ressourcen-Schutz. 
|
|