![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменять свойства объектов других приложений
flaxe © (2007-05-20 21:13:00)Понадобилось влезать в другие приложения и менять в них свойство объектов, всвязи с чем вопросы как можно осуществеить слудующее:
1) Найти все формы в стороннем приложении и делать из видимыми/невидимыми
2) Найти все объекты на этой форме(баттноы и прочие) и изменять их свойства
Leonid Troyanovsky (2007-05-21 10:01:00) [1]
> Сергей М. © (21.05.07 09:06) [8]
> Вызов FindControl() имеет смысл лишь в контексте процесса
> текущего приложения.
Можно еще ограничить:
Вызов FindControl имеет смысл лишь из приложения
(но, не из библиотеки) и только для его контролов.
--
Regards, LVT.
Сергей М. (2007-05-21 09:06:00) [2]
> Elen © (21.05.07 08:26) [7]
Вызов FindControl() имеет смысл лишь в контексте процесса текущегоприложения.
Elen (2007-05-21 08:26:00) [3]
> Понадобилось влезать в другие приложения
Написанные на Делфи или вообще?. Если на Делфи то мона попробовать FindControl.
homm (2007-05-21 01:16:00) [4]> Видимо аффтору нужно нечто подобное.
Тем не менее он спросил совсем о другом.
Belorus (2007-05-21 01:05:00) [5]Есть такая программка Enabler, которая в винде может элементы управления разблокировать. Если в кнопка серая(то бишь Enabled = False) оно делает её обычной. Порой это весьма прикольно.
Дык делает это по клику на этом самом элементе. Видимо аффтору нужно нечто подобное.
Anatoly Podgoretsky (2007-05-20 22:17:00) [6]> homm (20.05.2007 22:14:03) [3]
Это все известно, но прочитай внимательно тему и вопрос, ну хочет он странного.
homm (2007-05-20 22:14:00) [7]> 2) Найти все объекты на этой форме(баттноы и прочие) и изменять
> их свойства
А если на форме нет объектов, только окна? Да и не формы это, а тоже окна? Другими словами, далеко не все программы написаны не VCL, и не о каких свойствах которые тебе нужны не знают. Но даже для VCL программ получить какой-либо объект имеено как объект (класс) — нетривиальная задача. А когда ты все-же получишь, скажи мне, как ты собираешься с ним работать? Тебе понадобиться обширная база знаний о таблицах адресов тех или иных функций и свойств для всех существующих версий VCL включая, наверное debug разновидности, со всеми сервиспаками. Штук так 50 различных сочетаний наверное получиться. Умножаем на предполагаемое количество нужных тебе объектов (пусть доже 20) = 1000 таблиц вызовов для классов. В ручную тебе столько информации не осилить, придется писать какуюнить утилитку, которая по DCUшкам различных версий ……(я мог бы продолжить да бесполезное это занятие)
И ты получишь возможность изменять свойства 30-50% объектов в 10% преложений. Оно тебе все еще нужно?
Anatoly Podgoretsky (2007-05-20 22:09:00) [8]Его не окна интересуют, а формы и объекты
Calibr (2007-05-20 21:29:00) [9]ну 1) легко. Перечисляешь все дочерние окна функцией EnumWindows или EnumChildWindows, затем ShowWindow(h, SW_HIDE) или ShowWindow(h, SW_SHOW), а вот 2) не знаю