Главная страница
    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.47 MB
Время: 0.027 c
3-1085643265
Kraw
2004-05-27 11:34
2004.06.20
Программирование TDBGrid


14-1086268979
WebErr
2004-06-03 17:22
2004.06.20
Сканер штрих кода и его сообщения


10-1012977852
Matushkin
2002-02-06 09:44
2004.06.20
CORBA сразу и клиент и сервер возможен?


3-1085732139
KADAN
2004-05-28 12:15
2004.06.20
PASSWORD() в MSSQL?


4-1084778473
Dmitrij_K
2004-05-17 11:21
2004.06.20
значки в listview





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский