Jonas Skrevet 3. juli 2004 Del Skrevet 3. juli 2004 (endret) EDIT: Etter et par restarts viste det seg at det funka. Er nok bare pc'en min som ikke er helt frisk Hallo Koden som lister opp alle vinduer, "oppdaterer" også formen. Altså formen kommer på toppen av alle andre former hver gang jeg lister. Det vil jeg ikke.. Har funnet ut at det er denne koden som gjør det: Call SendMessage(frmTaskbar.lstNames.hwnd, LB_ADDSTRING, 0, ByVal sCaption) Er det en annen måte å legge de til lista? Slik se hele koden ut: Public Function fEnumWindows(lst As ListBox) As Long With lst .Clear frmTaskbar.lstNames.Clear Call EnumWindows(AddressOf fEnumWindowsCallBack, .hwnd) fEnumWindows = .ListCount End With End Function Private Function fEnumWindowsCallBack(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim lExStyle As Long, bHasNoOwner As Boolean, sAdd As String, sCaption As String If IsWindowVisible(hwnd) Then bHasNoOwner = (GetWindow(hwnd, GW_OWNER) = 0) lExStyle = GetWindowLong(hwnd, GWL_EXSTYLE) If (((lExStyle And WS_EX_TOOLWINDOW) = 0) And bHasNoOwner) Or _ ((lExStyle And WS_EX_APPWINDOW) And Not bHasNoOwner) Then sAdd = hwnd: sCaption = GetCaption(hwnd) Call SendMessage(lParam, LB_ADDSTRING, 0, ByVal sAdd) Call SendMessage(frmTaskbar.lstNames.hwnd, LB_ADDSTRING, 0, ByVal sCaption) End If End If fEnumWindowsCallBack = True End Function Endret 9. juli 2004 av Jonas Lenke til kommentar
aadnk Skrevet 3. juli 2004 Del Skrevet 3. juli 2004 (endret) Hvorfor bruke API når man kan gjøre det samme i VB i omtrentlig samme hastighet? Jeg tror derfor du heller bør bruke AddItem prosedyren i List kontrollen, istedenfor å sende meldinger til vinduet. Men uansett hva jeg gjorde greide jeg ikke å kopiere problemet ditt. Er du sikker på at dette er denne koden som forårsaker det hele? Kanskje er det mulig å sette Visible til False og så til True igjen for å unngå at kontrollene oppdateres. Ellers kan du også prøve LockWindowUpdate API'en. Endret 3. juli 2004 av aadnk Lenke til kommentar
Jonas Skrevet 3. juli 2004 Forfatter Del Skrevet 3. juli 2004 (endret) Additem hadde jeg prøvd, men det funka heller ikke.. Det er en timer (100 interval) som lister opp alle vinduene med fEnumWindows. Det er da formen kommer over alle andre. Jeg har prøvd å hoppe over fEnumWindows i timern. Da funker alt, men jeg får jo ikke lista noe som helst. LockWindowsUpdate gjorde bare formen usynelig. Den kom ikke frem da jeg satt koden i form load. Edit: Ja, jeg er helt sikker. Tar jeg og "goto"-er forbi additem koden skjer det ingen ting! Endret 4. juli 2004 av Jonas Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå