PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Deskop refreshen, Registry-Cache flushen


aths
2003-11-25, 00:51:34
Ja, wie tut man das?

1.) Ich möchte softwaremäßig "F5" auf dem Deskop drücken. Habe etliche Beispiele ergoogelt, keines funzt bei mir. Hat jemand was, was auch funzt?

2.) Nach dem Schreiben in die Registry kann es offenbar je nach dem Registry-Bereich sein, dass die Änderungen nicht sofort wirksam werden. (Beispiel Registrieren von Dateitypen.) Wie flusht man den offensichtlich existierenden Cache und erzwingt ein Übernehmen aller Änderungen?

MeLLe
2003-11-27, 19:24:40
Also dein Registry-Prob kann ich nicht lösen, aber der Desktop-Refresh sollte doch eigentlich relativ einfach per Win32-API machbar sein:


...
hWnd = GetDesktopWindow(); // Desktop-Window-Handle holen
iRet = PostMessage(hWnd, WM_PAINT, NULL, NULL); // Repaint erzwingen
...

Matti
2003-11-28, 15:38:36
@aths
was willst du aktualisieren, das Hintergrundbild oder die Icons? Das sind nämlich 2 verschiedene Fenster! Das Hintergrundbild bekommt man mit GetDesktopWindow und für die Icons mußte nach einem Fenster mit der Bezeichnung "Program Manager" suchen.

zeckensack
2003-11-28, 16:22:49
Hast du RegFlushKey (http://msdn.microsoft.com/library/en-us/sysinfo/base/regflushkey.asp) schon probiert? :)

aths
2003-11-29, 06:04:56
Original geschrieben von Matti
@aths
was willst du aktualisieren, das Hintergrundbild oder die Icons? Das sind nämlich 2 verschiedene Fenster! Das Hintergrundbild bekommt man mit GetDesktopWindow und für die Icons mußte nach einem Fenster mit der Bezeichnung "Program Manager" suchen. Die Icons. Code, der den Program Manager sucht und da irgendwelche Messages hinschickt habe ich auch schon getestet, der funzte bei mir aber nicht.

Matti
2003-11-29, 15:26:19
ich hab nur Code, der die Desktop-Icons aus- und einblenden kann. Da wird mit ShowWindow das "Program Manager"-Fenster aus-/eingeblendet.

Aber wozu mußt du das überhaupt aktualisieren? Das wird doch automatisch gemacht, wenn sich irgendwelche Dateien verändern...

aths
2003-11-29, 16:34:29
Original geschrieben von Matti
Aber wozu mußt du das überhaupt aktualisieren? Das wird doch automatisch gemacht, wenn sich irgendwelche Dateien verändern... Leider nein. Wenn aTuner einen Link auf den Desktop legt, muss man bislang von Hand auf dem Desktop F5 drücken.

Matti
2003-11-29, 18:39:28
komisch. Ich hab grad im Total-Commander eine Datei nach "Dokomente und Einstellungen\rossmy01\Desktop" kopiert, und sie wurde sofort aufm Desktop angezeigt.

aths
2003-11-29, 21:29:18
Original geschrieben von zeckensack
Hast du RegFlushKey (http://msdn.microsoft.com/library/en-us/sysinfo/base/regflushkey.asp) schon probiert? :) Funzt. Danke.
Original geschrieben von Matti
komisch. Ich hab grad im Total-Commander eine Datei nach "Dokomente und Einstellungen\rossmy01\Desktop" kopiert, und sie wurde sofort aufm Desktop angezeigt. Ich erstelle eine Datei (einen Link) auf den Deskop, und kopiere nichts. Jedenfalls wird der Link (die .lnk-Datei) erst sichtbar, wenn ich F5 drücke. Ich probierte schon mal Code, der offenbar den Tastendruck F5 an den Deskop sendet, doch das brachte leider keinen Refreh desselben :(

MeLLe
2003-11-30, 21:53:42
Dann erstelle den Link doch im Root (C:\) und kopiere die lnk-File dann auf den Desktop ... ;D