Laden...

Desktophintergrund im Programm

Erstellt von B1rd vor 16 Jahren Letzter Beitrag vor 16 Jahren 6.154 Views
B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren
Desktophintergrund im Programm

Hallo zusammen
Keine Ahnung ob das hir hin gehört. Aber ich stelle die Frage trotzdem mal.

Wie kann ich meinem Programm den Hintergrund geben, welchen ich auch auf meinem Desktop habe. Dies soll beim FormOnLoad geschehen.
Nochmals auf Deutsch:
Wenn das Programm auf Computer x gestartet wird, soll der Desktophintergrund von Computer x im Programm erscheinen (Hintergrund).
Wenn das Programm auf Computer y gestartet wird, soll der Desktophintergrund von Computer y erscheinen.

Hoffe es kann mir einer helfen

Gruss
B1rd

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo B1rd,

Teilantwort: Form.BackgroundImage

herbivore

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

Ja das kenn ich schon herbivore 🙂

Mich interessiert den code, wie ich das Desktophintergrund-Image auslesen kann.
B1rd

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo B1rd,

Mich interessiert den code, wie ich das Desktophintergrund-Image auslesen kann.

das ist mit klar, deshalb habe ich auch "Teilantwort" geschrieben. Nun warte doch erstmal, ob noch jemand anders antwortet.

Oder anders betrachtet, warum schreibst du es nicht gleich so. Dann hätte ich mir die Antwort sparen können.

herbivore

738 Beiträge seit 2007
vor 16 Jahren

in der registry steht unter HKEY_CURRENT_USER - Control Panel - Desktop - Wallpaper der Pfad zum Bild, falls das hilft...

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

Original von nin
in der registry steht unter HKEY_CURRENT_USER - Control Panel - Desktop - Wallpaper der Pfad zum Bild, falls das hilft...

danke dir so gehts sicher🙂
ich versuchs gelich mal aus

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

also bei mir steht da nix drin....
Ich kann das zwar nicht überprüfen, weil bei mir am pc "regedit" gesperrt ist.
Wir das noch an einem anderen Ort gespeichert?

B
53 Beiträge seit 2007
vor 16 Jahren

Bin mir nicht sicher obs auch irgendwie in der .NET Klassenbibliothek ne Möglichkeit dafür gibt aber hier hast du schonmal die Win32 API Variante:

API Funktion: http://msdn2.microsoft.com/en-us/library/ms724947.aspx

Für den Parameter uiAction übergibst du die Konstante SPI_GETDESKWALLPAPER wenn du in pvParam per Referenz einen Buffer übergibst steht dort der komplette Pfad drin.

Aber die API Funktion macht wahrscheinlich auch nicht mehr als in der Registry nachzuschauen.

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

also bei mir zuhause hat es funktioniert.
Ganz einfach mit folgendem Code


RegistryKey rk = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop");
            try
            {
                string fname = "" ;
                fname = rk.GetValue("Wallpaper").ToString();
                if (fname != "(Kein)")
                    this.BackgroundImage = Bitmap.FromFile(fname, true);
                else
                    MessageBox.Show("Kein Desktophintergrund vorhanden");
                this.BackgroundImageLayout = ImageLayout.Stretch;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }

Keine ahnung warum es in der schule nicht funktioniert hat....

mfg
B1rd

99 Beiträge seit 2006
vor 16 Jahren

Ich glaube zu wissen, das der Benutzer nicht die Benutzerrechte hat, solche Einstellungen zu verändern.

1. Googlen 2. Boardsuche benutzen 3. Überlegen 4. Posten

Ich sage es nur äußerst ungerne,aber darf man in Foren/wo auch immer eine klitzekleine Frage stellen,ohne dass gleich ein Oberlehrer mit der obligatorischen "Google suchen"-Antwort kommt?

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

ich verändere ja nicht. Ich lese nur heraus 😉
Bei mir im Geschäft funktionierts übrigens auch 🙂

Gruss
B1rd

S
1.047 Beiträge seit 2005
vor 16 Jahren

bekommst du den neine exception in der schule? laute hilfe wirft OpenSubKey eine SecurityException wenn du nicht genug rechte hast.

345 Beiträge seit 2005
vor 16 Jahren

Isses vielleicht ein JPG oder so? Dann wirds imho über active-desktop angezeigt und steht evtl. nicht (dort) in der registry?

Mein Haus, mein Viertel, mein Blog

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

das komische ist:
Zuhause wird es in die registry geschrieben, im Geschäft auch nur in der schule net-.-

@vorposter: Jedes desktophintergrundbild, welches du setzt wird in ein .bmp umgewandelt 😉

B
B1rd Themenstarter:in
108 Beiträge seit 2006
vor 16 Jahren

Original von sheitman
bekommst du den neine exception in der schule? laute hilfe wirft OpenSubKey eine SecurityException wenn du nicht genug rechte hast.

nein keine exception es steht einfach kein pfad drin...

738 Beiträge seit 2007
vor 16 Jahren

vielleicht ist auch keine Hintergrundbild gesetzt, sondern nur eine Hintergrundfarbe 😉

3.971 Beiträge seit 2006
vor 16 Jahren

Schonmal die Windows-API Funktion "GetWindowDC" aus user32.dll probiert? Guckst Du

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...