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
Hallo B1rd,
Teilantwort: Form.BackgroundImage
herbivore
Ja das kenn ich schon herbivore 🙂
Mich interessiert den code, wie ich das Desktophintergrund-Image auslesen kann.
B1rd
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
in der registry steht unter HKEY_CURRENT_USER - Control Panel - Desktop - Wallpaper der Pfad zum Bild, falls das hilft...
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
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?
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.
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
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?
ich verändere ja nicht. Ich lese nur heraus 😉
Bei mir im Geschäft funktionierts übrigens auch 🙂
Gruss
B1rd
bekommst du den neine exception in der schule? laute hilfe wirft OpenSubKey eine SecurityException wenn du nicht genug rechte hast.
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
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 😉
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...
vielleicht ist auch keine Hintergrundbild gesetzt, sondern nur eine Hintergrundfarbe 😉
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...