PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.net] Desktop aktualisieren



DeXTer
04.12.2008, 20:20
Hab nen kleines Tool geschrieben, welches den Desktophintergrund per Registry umändert.
Nun ist der Wert geändert und eingetragen, nur ändert sich der Hintergrund erst nach Neustart.

Hab versucht den explorer zu killn und wieder neuzustarten, aber das tuts auch nicht.

Gibts irgendwie ne Möglichkeit, den Desktop zu aktualisieren.
Ich weiß, dass es eine API dazu gibt, welche vielleicht funktioniert, aber für mich nicht wirklich verständlich ist.

Oder noch ne ganz andere Variante, den Hintergrund zu aktualisieren?

Jack Daniels
04.12.2008, 20:32
F5 ODA Strg. + F5

Gumball
04.12.2008, 20:35
Problem ist,wenn ein anderes Fenster offen ist wirkt F5 dort und nicht auf dem Desktop,und unterbricht dich beim schreiben,da er daueraktualiesiert,wäre für FH z.b. superschlecht.
Also SendKeys = Failed
Evtl,kann man die Sendkeys ja nur für bestimme Fenster,bzw. den Desktop aktivieren,dann würde es gehen.

Sirect
04.12.2008, 20:37
7
8
9
10



public const int SHCNE_ASSOCCHANGED = 0x8000000;
public const int SHCNF_IDLIST = 0;

/// <summary>
/// Refreshes the entire desktop
/// </summary>
public static void RefreshDesktop()
{
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);
}

enco
04.12.2008, 20:50
Unnötig, das kannst du als Parameter direkt beim ändern machen:
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imgBMP, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)

Added after 2 minutes:

Hier, ich habe dir mal die Klasse hochgeladen, die ich für mein Programm geschrieben hatte: http://nopaste.free-hack.com/index.php?id=070394a741&view=nl