Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.033 c
14-1085986624
Глеб
2004-05-31 10:57
2004.06.20
Яндекс


3-1085646663
Ale
2004-05-27 12:31
2004.06.20
TADOConnection


1-1086340572
Uran
2004-06-04 13:16
2004.06.20
Отображение документа msword


14-1086333374
Baks
2004-06-04 11:16
2004.06.20
Из рубрики Знаменательная математика


11-1071485368
avakss
2003-12-15 13:49
2004.06.20
TCPServer и завершение виндовс98





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский