Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с EnumWindows


chernoruk ©   (2002-02-24 22:14:00) 

После выполнения следующего кода ListBox1 заполняется какими-то
непонятными заголовками окон (которых нет ни на экране, ни на таскбаре) и вообще даже пустыми строками (т.е. s="").
Пожалуйста-а-а-а! Помогите, кто знает в чём дело.



uses windows,...
...
implementation
...

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@CallBackFunction,0);
end;

function CallBackFunction(hand: HWND):boolean;
var
s :string;
mas :array[0..256]of ansichar;
begin
GetWindowTextA(hand, mas, 256);
s:=mas;
form1.listbox1.items.Add(s);
end;

...
end.


chernoruk   (2002-03-09 05:45:00) [1]

Спасибо!


Raptor   (2002-02-25 10:50:00) [2]

Не обижайся. ;-))
Просто проблемма в даном, конкретном случае, точно не в невидимых окнах. Главная проблема здесь в том, что автор вопроса в описании callback-функции не только забыл указать второй параметр функции, но и забыл указать стандартный способ передачи параметров (stdcall). И у некоторых участников этого форума уже были проблеммы с тем, что такая функция (без описания stdcall) некорректно работает именно из-за этого.


VuDZ   (2002-02-25 02:05:00) [3]

не стоит быть таким категоричным на счёт невидимых окон


Raptor   (2002-02-24 23:42:00) [4]

Дело совсем не в невидимых окнах. Дело в том, что функция неправильно описана. Надо ее описать так:

function CallBackFunction(hand: HWND;lParam:LParam):boolean; stdcall;

Тогда будет работать.


Sasha9   (2002-02-24 23:00:00) [5]

и к тому же в колбэке 2 параметра (второй - lParam:LPARAM)


VuDZ   (2002-02-24 22:20:00) [6]

всё дело в том, что есть чень много окон, которых не видно, но которые есть. запусти Spy from SDK и увидешь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо