![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не находится хэндл у самой программы [D7, XP]
cvg © (2006-12-28 17:08:00)Программа делает активным окно другой программы, а потом должна обратно перевести фокус на себя. У той другой программы имя класса = 'InfoClass', хэндл находится без проблем. У самой программы (согласно утилите Spy++) имя класса = 'TMainForm'. Но функция FindWindow почему-то упорно возвращает ноль :(. В чем может быть дело?
Примеры успешного и неуспешного обращения к функции FindWindow:
wHandle := FindWindow('InfoClass');
h_prg := FindWindow('TMainForm');
Elen (2006-12-29 09:03:00) [1]
> cvg
Пожалуйста. Креативные Извраты всегда работают ;)
cvg (2006-12-29 08:58:00) [2]Спасибо, Elen, сработало! :)
Elen (2006-12-29 08:51:00) [3]
> cvg
Вот тебе выкрутас один: приводит форму наверх
Form1.FormStyle:=fsStayOnTop;
Form1.FormStyle:=fsNormal;
Не суди за код строго, мне иногда помогает.
cvg (2006-12-29 08:31:00) [4]
windows.BringWindowToTop(MainForm.Handle);тоже никакого видимого влияния на ход выполнения программы не оказывает :(
Elen (2006-12-29 08:19:00) [5]
> а потом должна обратно перевести фокус на себя.
BringWindowToTop( Form1.Handle)Где Form1 - главная форма
cvg (2006-12-29 08:13:00) [6]Хмм... Всё это хорошо, но почему-то строка
windows.BringWindowToTop(self.Handle);окно текущей программы в фокус не помещает. Почему бы это?
Рамиль (2006-12-28 18:08:00) [7]А Self.Handle уже не катит?