Desktop/Fenster/Icon Koordinaten
-
Ist es möglich die Koordinaten von bestehenden Programmfenstern und Icons auf dem Desktop zu erfassen? Bei Programmen kommt man bestimmt irgendwie an deren handle ran oder? Aber wie schaut es aus mit Positionen die zu einem Icon auf dem Desktop gehören?
Ziel des ganzen soll es sein, per Tool des Desktop wieder zu rekonstruieren weil ja nach Wechsel der Auflösung des öffteren die Anordnung total durcheinander gerät.
Warum ich dann auch nach Programmen frage? Das ist nur Interessehalber evtl kann man dieses noch woanders mit einfliessen lassen.

Falls einer eine Idee hat wie man an die Iconkoordinaten rankommt, ich wüsste nicht wie?

-
Du brauchst wohl:
GetDesktopWindow
ListView_GetItemPosition MACRO
ListView_SetItemPosition MACROSo unglaublich es kling, aber das Desktop ist nur ein Ordner, bzw. dadurch auch ein Fenster. Und wenn du schon mal ein Ordner angeschaut hast, dann ist dir vielleicht aufgefallen, dass es ein ListCtrl, bzw. ein ListView ist. Und genau so kann man dann halt das ganze auch behandeln

Edit:
Ich bin mir jetzt nicht sicher, aber mir kam noch in den Sinn. Da der Desktop ja ein ListView ist, könnte man es auch mit einer Konvertierung mit der MFC benutzen. Allerdings gebe ich hier keine Gewähr.CWnd* pWnd = CWnd::GetDesktopWindow(); // Wie bei CListView::GetListCtrl() oder zumindest ähnlich ... CListCtrl* pListCtrl = static_cast<CListCtrl*>(pWnd); // Und nun hätten wir ein ListCtrl zum arbeiten.Daher wohl besser die Macros verwenden. Oder selber mit SendMessage die richtigen Messages versenden.
LVM_SETITEMPOSITION
LVM_GETITEMPOSITIONGrüssli
-
Der Desktop liegt allerdings in einem anderen Thread.
Das heißt man kann nicht so einfach die Daten per Messaage abfragen, da die Speicheradresse für den Puffer natürlich in Deinem Adressraum liegt.In dem Buch "Programming Windows" von Jeffrey Richter ist der DIPS (Desktop Icon Position Saver) der das beispielhaft zeigt.
-
thx für die Infos, dann werd ich mich mal ins getümmel stürzen.
-
Gibt es zu dem Buch auch nen Amazon Link?
-