Scheint Irgentwie nicht mehr möglich zu sein (Win7) über Progman an das Handle der SysListView32 zu kommen (ich mein das Handle der Desktop-ListView) die ist nun in einem der no-title WorkerW-Class Fenster. Wie komm ich denn jetzt sicher an das Handle???
Ich hab eine Appbar die vermeiden soll das sich ein Fenster "ungreifbar" hinter sie schiebt. Das löse ich z.Z. mit GetForegroundWindow(). Das Problem dabei ist das mit einem click auf den Desktop dieser sich auch verschiebt 😕 . Kann man evtl iwie auf ein "echtes" Fenster Prüfen? So das diese SysListView einfach aus dem Raster fällt?
[EDIT] omg... GetWindowsLong() und WS_CHILDWINDOW... andenkopfklatsch
[EDIT] omg... GetWindowsLong() und WS_CHILDWINDOW... andenkopfklatsch
Was ist damit? Verfasse bitte eine ausführliche Antwort als Post, wenn du eine Lösung selbst findest.
> Codejunky <
Öhm ja, die SysListView32 hat halt den Style WS_CHILDWINDOW. Alle Fenster mit diesem stil brauchen logischerweise erst garnicht geprüft werden weil die sich nicht unter die Appbar schieben können.
Doch da gibts jetzt auch schon direkt ein neues Problem:
uint wstyle = (uint)Win32.User32Api.GetWindowLong(hWin, Win32.User32Api.GWL_STYLE);
const uint ws_child = 0x40000000;
if ((ws_child & wstyle) == ws_child)
return;
greift nicht obwohl hWin 100%ig den WS_CHILDWINDOW hat... so fragt man die bitmaske doch ab oder? :>
so fragt man die bitmaske doch ab oder? :>
Ja.
> Codejunky <
hö? wieso geht das denn dann nicht? 😕
[EDIT] aha. nu klappts. ich hab die var-typen von uint nach long umgestellt. GetWindowLong() liefert bei mir einen negativen wert den ich nun negiert habe. keine ahnung warum da ein negativer wert rumkommt...