Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Как получить список всех окон Windows (включая все дочерние)   Найти похожие ветки 

 
Igor5   (2004-03-06 14:48) [0]

Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO BEGIN
GetClassName(Wnd,Buff,100);
Memo1.Lines.Add(StrPas(buff));
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
показывает не все.
Спасибо за ответ.


 
Игорь Шевченко ©   (2004-03-06 19:27) [1]

function EnumChildWindowsProc (WindowHandle : HWND; Data : Pointer) : BOOL; stdcall;
var
 WinText : array[0..MAX_PATH] of char;
 WinClassName : array[0..MAX_PATH] of char;
 Node : TTreeNode;
 AImageIndex : Integer;
 AIconHandle : THandle;
 AIcon : TIcon;
begin
 GetWindowText(WindowHandle, WinText, SizeOf(WinText));
 GetClassName(WindowHandle, WinClassName, SizeOf(WinClassName));
 Node := PWindowTreeNode(Data)^.TreeView.Items.AddChildObject(PWindowTreeNode(Data)^.Node,
          Format("%s - %s", [WinClassName, WinText]), Pointer(WindowHandle));
 AIconHandle := HSGetWindowIcon(WindowHandle);
 if AIconHandle <> 0 then begin
   AIcon := TIcon.Create();
   AIcon.Handle := CopyIcon(AIconHandle);
   AImageIndex := fMain.WindowIconsImageList.AddIcon (AIcon);
   if AImageIndex <> -1 then begin
     Node.ImageIndex := AImageIndex;
     Node.SelectedIndex := AImageIndex;
   end;
 end else begin
   Node.ImageIndex := -1;
   Node.SelectedIndex := -1;
 end;
 Result := true;
end;

function EnumWindowsProc (WindowHandle : HWND; Data : Pointer) : BOOL; stdcall;
var
 WinText : array[0..MAX_PATH] of char;
 WinClassName : array[0..MAX_PATH] of char;
 WindowNode : TWindowTreeNode;
 AImageIndex : Integer;
 AIconHandle : THandle;
 AIcon : TIcon;
begin
 GetWindowText(WindowHandle, WinText, SizeOf(WinText));
 GetClassName(WindowHandle, WinClassName, SizeOf(WinClassName));
 WindowNode.TreeView := TTreeView(Data);
 WindowNode.Node := TTreeView(Data).Items.AddObject(nil,
          Format("%s - %s", [WinClassName, WinText]), Pointer(WindowHandle));
 AIconHandle := HSGetWindowIcon(WindowHandle);
 if AIconHandle <> 0 then begin
   AIcon := TIcon.Create();
   AIcon.Handle := CopyIcon(AIconHandle);
   AImageIndex := fMain.WindowIconsImageList.AddIcon (AIcon);
   if AImageIndex <> -1 then begin
     WindowNode.Node.ImageIndex := AImageIndex;
     WindowNode.Node.SelectedIndex := AImageIndex;
   end;
 end else begin
   WindowNode.Node.ImageIndex := -1;
   WindowNode.Node.SelectedIndex := -1;
 end;
 EnumChildWindows(WindowHandle, @EnumChildWindowsProc, LPARAM(@WindowNode));
 Result := true;
end;

procedure TfMain.RefreshWindowsView();
begin
 WindowsTreeView.Items.Clear();
 EnumWindows(@EnumWindowsProc, LPARAM(WindowsTreeView));
end;




Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
1-1082095259
Dentist
2004-04-16 10:00
2004.05.02
ICO to BMP


6-1078341231
3APA3A
2004-03-03 22:13
2004.05.02
Передача файла с помощью TTCPServer, TTCPClient...


14-1081681535
RealRascal
2004-04-11 15:05
2004.05.02
Как сделать чтобы при копировании в буфер


7-1078581566
InfoCar1
2004-03-06 16:59
2004.05.02
Как удалить из реестра переменную?


6-1078749494
GanibalLector
2004-03-08 15:38
2004.05.02
сетевые подключения