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

Вниз

Как сделать список компонентов чужой программы   Найти похожие ветки 

 
De$criptR   (2004-06-04 13:25) [0]

как взять количество компонентов и взять имя каждого чужой программы по его хендлу или еще как. и как скрыть чтонибудь.


 
Алхимик ©   (2004-06-04 15:02) [1]

Есть программа Far. Какие компоненты хотим? Правую или левую панель?


 
Mim1 ©   (2004-06-04 16:41) [2]

Я поптаюсть перевести вопрос чтобы было понятно всем. "ХОЧУ!"


 
Nous Mellon ©   (2004-06-04 16:46) [3]


> и как скрыть чтонибудь.

LOL


 
Agent13 ©   (2004-06-04 16:47) [4]


> и как скрыть чтонибудь.

Выключить монитор. Уверяю - скроется всё.


 
Алхимик ©   (2004-06-04 16:52) [5]


> [4] Agent13 ©   (04.06.04 16:47)

Мой вариант - закрыть глаза. :)


 
Rouse_ ©   (2004-06-04 17:06) [6]

Мдя :)

////////////////////////////////////////////////////////////////////////////////
//
//  Автор: Александр (Rouse_) Багель
//  © Fangorn Wizards Lab 1998 - 2002
//  16 октября 2002 18:21

//  Данный код приведен лишь для демонстрации
//  А простой вариант поиска Handle Ричедита выглядит так
//  var
//    Handle : HWND;
//  begin
//    Handle:= FindWindowEx(FindWindow(Название формы например "Form1",nil), 0, Название элемента например "Button1",  nil),  0, true);

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ComCtrls;

type
 TMainForm = class(TForm)
   TreeView1: TTreeView;
   procedure FormCreate(Sender: TObject);
   procedure Sys_Windows_Tree(Node: TTreeNode; Handle: HWND);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 MainForm: TMainForm;

implementation

{$R *.DFM}

////////////////////////////////////////////////////////////////////////////////
//
//  Стартовая функция, запускаем рекуссию используя хэндл рабочего стола
//

procedure TMainForm.FormCreate(Sender: TObject);
var
 StartHandle : THandle;
begin
 //Если требуется найти только данные по одному приложению
 //замени 2 строки в функциях их закоментированными аналогами
 StartHandle := GetDeskTopWindow;
 //StartHandle := 67324;//FindWindow(PChar(Caption), nil);  //На примере Винампа
 Sys_Windows_Tree(nil, StartHandle);
end;

////////////////////////////////////////////////////////////////////////////////
//
//  Рекурсивная функция, строит дерево всех открытых окон, кнопок, едитов и т.д.
//  В качестве входных данных получает узел дерева и Хэндл окна
//

procedure TMainForm.Sys_Windows_Tree(Node: TTreeNode; Handle: HWND);
const
 MAX = 128;
var
 TmpArray  : array[0..MAX - 1] of Char;
 Result    : String;
begin
 //Запускаем цикл пока не закончатся окна
 while Handle <> 0 do
 begin
   //Получаем имя класса окна
   GetClassName(Handle, @TmpArray, MAX);
   Result := String(TmpArray);
   //Получаем текст (Его Caption) окна
   GetWindowText(Handle, @TmpArray, MAX);
   Result := Result + "(" + String(TmpArray) +
     "): Handle = "+ IntToStr(Handle);
   //В следующей процедуре, в скобках, добавляем результат
   //в дерево, получаем хэндл дочернего окна и с результатами
   //выполнения этих двух функций выполняем процедуру Sys_Windows_Tree
   Sys_Windows_Tree(TreeView1.Items.AddChild(Node, Result),
     GetWindow(Handle, GW_CHILD));
   //Получаем хэндл следующего (не дочернего) окна
   Handle := GetNextWindow(Handle, GW_HWNDNEXT);
   //Handle := 0;
 end;
end;

end.


 
Игорь Шевченко ©   (2004-06-04 17:10) [7]

Про EnumWindows+EnumChildWindows натурально, забываем


 
Rouse_ ©   (2004-06-04 17:13) [8]

> [7] Игорь Шевченко ©   (04.06.04 17:10)
Ну это я как вариант привел :)


 
Игорь Шевченко ©   (2004-06-04 17:16) [9]

Rouse_ ©   (04.06.04 17:13)

Совет. Не используй слово Result в качестве имени переменной в процедурах.


 
Rouse_ ©   (2004-06-04 17:18) [10]

> [9] Игорь Шевченко ©   (04.06.04 17:16)
Учту ...


 
Anatoly Podgoretsky ©   (2004-06-04 18:38) [11]

Смотреть мультики про Тома и Джерри



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
14-1086241440
ИМХО
2004-06-03 09:44
2004.06.20
Восстановление данных: помогите помочь


1-1086701667
Chlavik
2004-06-08 17:34
2004.06.20
DragAcceptFiles


3-1085629459
Victor_A
2004-05-27 07:44
2004.06.20
Вопрос По Fastreport V.2.52


14-1086234959
try
2004-06-03 07:55
2004.06.20
Shareware


1-1086606807
_alex_
2004-06-07 15:13
2004.06.20
Запуск индикатора процесса