08. november 2003 - 13:11
Der er
2 kommentarer og
1 løsning
Hvordan oprettes en liste over vinduer
Hvordan oprettes en liste over vinduer ??
Jeg vil gerne lave et lille program, som minder lidt om Job-listen, der allerede eksistere i Windows.
Jeg er ikke interesseret i hvilke processor der ligger og kører i baggrunden, men kun hvilke der har et vindue åbent.
Jeg har ikke rigtig kunne nogen løsning på dette, men er helt sikker på, at der er en af jer, som kan hjælpe! :-)
//Oergaard
Slettet bruger
08. november 2003 - 13:18
#1
Function EnumWindowsProc (Wnd: HWND; lb: TListbox): BOOL; stdcall;
var
caption: Array [0..128] of Char;
begin
Result := True;
if IsWindowVisible(Wnd) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or
(HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow))
and
{ skip WS_EX_TOOLWINDOW windows }
((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0)
then begin
SendMessage( Wnd, WM_GETTEXT, Sizeof( caption ),integer(@caption));
lb.Items.AddObject( caption, TObject( Wnd ));
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear;
EnumWindows( @EnumWindowsProc, Integer( ListBox1 ));
end;
08. november 2003 - 13:32
#3
Hej hejhej :-)
Jeg siger tusind tak for det meget hutige og meget præcise svar, det var lige det jeg havde brug for!
Tak for hjælpen!
//Oergaard