AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Fehler mit SetDesktopColor unter Windows 2000
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler mit SetDesktopColor unter Windows 2000

Ein Thema von hugo1990 · begonnen am 30. Dez 2006 · letzter Beitrag vom 3. Feb 2007
Antwort Antwort
hugo1990

Registriert seit: 27. Dez 2006
166 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehler mit SetDesktopColor unter Windows 2000

  Alt 30. Dez 2006, 21:22
Mit folgender Procedure soll das Desktophintergrundbild entfernt werden und ein Farbe als Hintergrund festgelegt werden:
Delphi-Quellcode:
procedure TForm1.SetDesktopColor(clr:DWord);
var
  colorID:Integer;
  color:COLORREF;
begin
   // Remember current background color
  if FOldColor=CLR_INVALID then
    FOldColor:=GetSysColor(COLOR_BACKGROUND);

   // Set the desktop background color to the wanted one
  colorID:=COLOR_BACKGROUND;
  color:=clr;
  SetSysColors(1,colorID,color);

   // Remove the desktop wallpaper, without updating the registry
  SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(''), 0);
end;
Unter WinXP funzt das einwandfrei, aber als ich es auf den Rechner meiner Eltern (Win2000) ausprobiert habe, hat er das Hintergrundbild nicht entfernt und überall, wo weiß ist setzt er die angegebene Farbe. Weiß jemand, woran das liegen könnte.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Fehler mit SetDesktopColor unter Windows 2000

  Alt 30. Dez 2006, 22:20
Du solltest die Rückgabewerte prüfen und ggf. mit "GetLastError" nachgucken, was schief gelaufen ist.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Fehler mit SetDesktopColor unter Windows 2000

  Alt 30. Dez 2006, 23:32
Hi! (Ja, ich bin's wieder )

Das ist mir auch schon 2mal untergekommen mit meinem Overlay Programm: Da ist die Farbauflösung "nur" auf 16bit eingestellt gewesen... Zumindest war das bei mir die Lösung des Problems... Was man dagegen machen kann, weiß ich noch nicht
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
hugo1990

Registriert seit: 27. Dez 2006
166 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Fehler mit SetDesktopColor unter Windows 2000

  Alt 31. Dez 2006, 12:14
Ok also es muss an folgender Zeile liegen:
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(''), 0); Und als Fehlermeldung gibt er mir "Der Aufruf einer Betriebssystemfunktion ist fehlgeschlagen" aus. Also ich muss schon sagen, der wäre ich selber nie drauf gekommen.
Gibt es vielleicht noch eine andere Möglichkeit um das Desktophintergrundbild zu löschen.
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Fehler mit SetDesktopColor unter Windows 2000

  Alt 3. Feb 2007, 14:56
Zitat von hugo1990:
Gibt es vielleicht noch eine andere Möglichkeit um das Desktophintergrundbild zu löschen.
Das Bild ist in der Registry eingetragen. Den eingetragenen Wert löschen.

Zitat von hugo1990:
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(''), 0);
Wenn PChar einen Pointer darstellt, sollte da NIL stehen.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz