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

Вниз

Дочерние окна   Найти похожие ветки 

 
ATLANTIDO   (2002-04-21 16:48) [0]

Как узнать заголовки или классы всех дочерних окон какого либо окна ?


 
Song   (2002-04-21 16:52) [1]

GetWindowName()
GetClassname()


 
ATLANTIDO   (2002-04-21 17:06) [2]

Это понятно, а как хэндл получить ?


 
Atrem   (2002-04-21 17:49) [3]

чтобы перебрать все дочерние окна используй EnumChildWindows


 
ATLANTIDO   (2002-04-21 18:48) [4]

А как ей пользоваться ?


 
Song   (2002-04-21 19:31) [5]

2ATLANTIDO © (21.04.02 18:48)
http://delphi.vitpc.com/helloworld/wininf.htm


 
ATLANTIDO   (2002-04-21 23:05) [6]

Воспользовавшись этой статьей написал следующий код:

unit Unit2;
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
ListBox1: TListBox;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
function EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Обязательно stdcall !!!
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.EnumProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Обязательно stdcall !!!
var
buffer: array [0..255] of char;
Begin
GetClassName(Wd, buffer, SizeOf(Buffer));
if Buffer<>"" then ListBox1.Items.Add(buffer);
EnumProc := TRUE;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
H : HDC;
begin
H:=GetForegroundWindow;
if H<>0 then
begin
EnumChildWindows(h, @TForm1.EnumProc, 0);
ListBox1.items.Add("----------------");
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Items.Clear;
end;

end.

В ListBox"e выводятся тоько "-----------";
В чем ошибка ?


 
Song   (2002-04-22 08:34) [7]

Я думаю, что h в TTimer.OnTimer дожно быть у Вас равно GetDeskTopWindow


 
Song   (2002-04-22 08:37) [8]

Хотя нет. Я понял, что Вы хотите. Вы хотите получть дочерние окна другой программы, а не всех дочерних окон первого уровня.
Попробуйте проверить значение h


 
Atrem   (2002-04-22 12:11) [9]

попробуй такой вариант :


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
ListBox1: TListBox;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
function MyProc(wnd:hwnd;lparam:longint):boolean;stdcall;
var text:array[0..255] of char;
begin
Result:=true;
if not IsWindow(wnd) then exit;
GetClassName(wnd,text,256);
Form1.ListBox1.Items.Add(text);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var wnd:HWND;
begin
wnd:=GetForegroundWindow;
if wnd>32 then
begin
ListBox1.Clear;
EnumChildWindows(wnd,@myProc,0);
end;
end;
end.


 
ATLANTIDO   (2002-04-23 15:31) [10]

Спасибо, помогло !



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

Форум: "WinAPI";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
6-77544
Lenidus
2002-04-16 00:29
2002.06.24
Как написать качалку сайтов?


8-77511
pIt
2002-02-09 03:55
2002.06.24
Bitmap ы из DLL ки или чужого EXE ка


1-77332
chernoruk
2002-06-11 07:14
2002.06.24
Вид формы на разных мониторах


1-77395
Сатир
2002-06-10 15:29
2002.06.24
Использование тэгов компонентов


3-77280
PSA
2002-05-30 14:19
2002.06.24
Проблема редактирования записей при подключении базы через ADO .





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