Code: Select all
;=====================================================
; Library: ClearDebugWindow
; Author: Lloyd Gallant (netmaestro)
; Date: August 7, 2007
; ====================================================
Procedure FindListBox(hwnd, *lbhwnd.LONG)
cn$=Space(255)
GetClassName_(hwnd, @cn$, 254)
If UCase(cn$) = "LISTBOX"
*lbhwnd\l = hwnd
ProcedureReturn 0
Else
ProcedureReturn 1
EndIf
EndProcedure
Procedure FindDebugWindow(hwnd, *debugoutput.LONG)
wt$ = Space(255)
GetWindowText_(hwnd, @wt$, 254)
If FindString(wt$, "Debug Output", 1) Or FindString(wt$, "Messages du débogueur", 1) Or FindString(wt$, "Debugger-Ausgabe", 1) Or FindString(wt$, "Salida Depurador", 1)
*debugoutput\l = hwnd
ProcedureReturn 0
Else
ProcedureReturn 1
EndIf
EndProcedure
ProcedureDLL ClearDebugWindow()
Protected debugoutput=0, listboxhwnd=0
time = ElapsedMilliseconds()
Repeat
EnumWindows_(@FindDebugWindow(), @debugoutput)
Delay(1)
Until debugoutput Or ElapsedMilliseconds()-time > 200
If debugoutput
EnumChildWindows_(debugoutput, @FindListBox(),@listboxhwnd)
EndIf
If listboxhwnd
SendMessage_(listboxhwnd, #LB_RESETCONTENT,0,0)
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure