Autor Beitrag
Killi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 299

Win*
D6 Prof
BeitragVerfasst: So 24.11.02 22:33 
DIe Überschrift sagt alles: Wie mache ich das am besten??? Windows den Pfad eines Hintergrundbildes zuweisen!?!?
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: So 24.11.02 22:41 
Hi,

schon mal in der Registry gesucht ? :D

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



BeitragVerfasst: So 24.11.02 22:53 
Schon mal die Suche bemüht? Ode rmal in dei FAQ's geschaut? :roll:
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 25.11.02 00:37 
Mußte was in der FAQ unter Sonstiges sein.
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 299

Win*
D6 Prof
BeitragVerfasst: Sa 30.11.02 19:51 
Hi!

Und wie starte ich jetzt dieses hier:
ausblenden 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 299

Win*
D6 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 30.11.02 22:22 
Bei Funktionen mußt Du die Werte in der Klammer mit übergeben.

Beispiel :
ausblenden 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 :
ausblenden 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



BeitragVerfasst: Sa 30.11.02 22:30 
ausblenden 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! :roll:

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



BeitragVerfasst: 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:

ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.Button1Click(Sender: TObject);
begin
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar('c:\100.bmp'), SPIF_SENDWININICHANGE)
end;
Killi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 299

Win*
D6 Prof
BeitragVerfasst: 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:
ausblenden 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



BeitragVerfasst: 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



BeitragVerfasst: 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



BeitragVerfasst: Di 03.12.02 06:54 
Meine letzte Aussage bezog sich auf:

ausblenden 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 TRegIniFile handelt. TRegIniFile geht automatisch von HKEY_USER\DEFAULT aus.
ConnyCarl
Hält's aus hier
Beiträge: 14



BeitragVerfasst: 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



BeitragVerfasst: Mi 04.12.02 10:35 
Stimmt der Pfad zum neuen Hintergrundbild? :roll:
Killi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 299

Win*
D6 Prof
BeitragVerfasst: 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



BeitragVerfasst: 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:

ausblenden 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



BeitragVerfasst: Do 05.12.02 15:20 
Ressourcen-Schutz. :roll: