Frage

Vor einigen Jahren habe ich versucht, unschuldig eine kleine Anwendung zu schreiben, meine taktisch platziert Desktop-Symbole zu speichern, weil ich sie wieder an ihren Standorten zu ziehen krank war, wenn ein Ereignis sie zurückgesetzt. Ich gab nach viel zu viel Zeit buring eine Möglichkeit zur Abfrage, viel weniger speichern und zurückzusetzen, meine Symbole Desktop-Position zu finden, gescheitert.

Wer weiß, auf dem Windows diese Informationen weiterhin besteht, und wenn es eine API ist, sie zu setzen?

Danke, Richard

War es hilfreich?

Lösung

Wenn ich der Desktop nicht alles täuscht ist nur ein Listview, und Sie werden die LVM_SETITEMPOSITION Nachricht an den Griff des Desktops.

gegoogelt ich ein bisschen für einige Codes c # und könnte ein Beispiel, das nicht finden, aber ich habe die folgenden Artikel gefunden. Torry: ... erhalten / die Positionen von Desktop-Icons gesetzt ?. Es ist delphi Code, aber ich finde es sehr gut lesbar und mit einigen P / Ruft Sie in der Lage sein, es zu c # zu übersetzen.

Andere Tipps

Der Desktop ist nur ein Listview-Steuerelement, und Sie können den Griff bekommen und Nachrichten an sie senden Symbole bewegen LVM_SETITEMPOSITION verwenden.

Erste Icon-Positionen mit LVMGETITEMPOS etwas komplizierter ist, though. Sie haben einen Zeiger auf eine Point-Struktur als LPARAM passieren. Wenn Sie versuchen, das zu tun, werden Sie wahrscheinlich Explorer zum Absturz bringen. Das Problem ist, dass Sie einen Zeiger in Ihren Adressraum übergeben, die die Steuerung als Zeiger in Explorer Adressraum interpretiert. Ouch!

Die Lösung, die ich verwendet habe, ist eine DLL in den Explorer-Prozess zu injizieren und die Nachricht von dort aus senden. Dann müssen Sie nur noch eine Möglichkeit haben, die Position Info zurück zu Ihrem Prozess zu erhalten.

Ich bin noch auf der Suche in diesem und wird das Ergebnis veröffentlichen, sobald ich endlich etwas zum Laufen bringen. Ich bin dieses Posting, denn dank indirekt an Davys Post fand ich auch eine klassische VB Implementierung:

Shuffle Desktop Icons Mit Inter Speicher Kommunikation

und das wird wohl die Grundlage für meinen Code sein.

Ich habe keine Ahnung über die API, aber ich weiß, Ultramon ( http://www.realtimesoft.com / ultramon / ) hat eine Funktion für die Erhaltung Symbol Platzierung enthalten (obwohl ich es nie Symbol Standort für die Erhaltung verwendet haben, ist es für Multi-Monitor-Nutzung) unverzichtbar. Die neueste Beta-Version funktioniert einwandfrei mit Vista (außer manchmal einen kleinen Fehler oder zwei, das, wenn sie anfänglich in meinen Rechner via RDP Anmeldung), und natürlich habe keine Probleme mit XP hatte. Ich habe es seit mehr als vier Jahren jetzt.

Und habe ich erwähnt, dass es das beste Programm für Multi-Monitor-Nutzung ist?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top