![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Своя иконка возле кнопок свернуть,развернуть, закрыть [D7, WinXP]
ychenick © (2006-06-01 01:45:00)Приветсвую вас, мастера!
Необходимо поместить кнопк в заголовок ЧУЖОГО окна рядом с кнопками свернуть,развернуть, закрыть(хендел окна известен). Так же нужно написать обработчик этой кнопки на чужом окне. Еще на кнопке должен быть изображон графический рисунок.
Буду благодарен, тем кто поможет исходным кодом, решающим, хотя бы частично, поставленную задачу.
Игорь Шевченко (2006-06-06 17:17:00) [1]ychenick © (06.06.06 16:25) [10]
Создать (нарисовать) ее тоже можно, поставив хук и обрабатывая сообщения
WM_SETTEXT, WM_SYSCOMMAND, WM_SETICON, WM_NCPAINT, WM_NCACTIVATE, WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN, WM_INITMENUPOPUP
ychenick (2006-06-06 16:25:00) [2]И все же, как создать кнопку в заголовке ЧУЖОГО окна?
Допустим, обработать ее нажатие мы сможем поставив хук и перехватывая сообщения.
DVM (2006-06-06 10:06:00) [3]
> Хук и запись в память процесса разные вещи.
А где я сказал, что это одно и то же?
tesseract (2006-06-05 17:46:00) [4]
> Не секут. Эксплорер, между прочим, тоже внедряется (хук
> ставит WH_SHELL) и ничего.
Хук и запись в память процесса разные вещи.
ychenick (2006-06-05 17:42:00) [5]tesseract ©
Мдям. А что в delphi появился компонет для внетрения в чужое адресное пространство?
Не, не появился, но при прямой работе с памятью можно и такое зачудить
DVM ©
Не секут. Эксплорер, между прочим, тоже внедряется (хук ставит WH_SHELL) и ничего.
Не знаю, у меня нод сичет. А эксплорер - это исключение.
С знаю совсем немного, но за примерчик буду благодарен. Скинь на указанное мыло, только слеши поубирай в адресе ;)
n0name (2006-06-01 19:41:00) [6]Знаешь C?
Могу скинуть пример.
DVM (2006-06-01 17:21:00) [7]
> антивирусы такое секут - внедрение в чужое адресное пространство
Не секут. Эксплорер, между прочим, тоже внедряется (хук ставит WH_SHELL) и ничего.
tesseract (2006-06-01 17:20:00) [8]
> антивирусы такое секут - внедрение в чужое адресное пространство
> =( Мне кажется все можно проще через WinAPI реализовать.
> ...
Мдям. А что в delphi появился компонет для внетрения в чужое адресное пространство?
Антивирусы секут запись в код, А посадить иконку на панельку можно.
ychenick (2006-06-01 17:16:00) [9]антивирусы такое секут - внедрение в чужое адресное пространство =(
Мне кажется все можно проще через WinAPI реализовать....
DVM (2006-06-01 17:09:00) [10]
> в заголовок наверное нереально без переписывания системных
> DLL
Реально.
1) Внедриться в адресное пространство процесса чужого окна.
2) Подменить оконную процедуру.
3) Ловить сообщения рисования заголовка
4) Рисовать чего угодно.
StriderMan (2006-06-01 15:34:00) [11]в заголовок наверное нереально без переписывания системных DLL
А вот в чужое окно подложить свою форму - у меня получилось
СвояФорма.ParentWindow := ХэндлЧужогоОкна;