|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.06.2010, 11:50 | #1 |
Регистрация: 10.06.2010
Сообщений: 9
|
Создал кнопку в чужой форме.Как обработать событие Click
Прошу помощи
Создал кнопку в чужой форме.Как обработать событие Click Пишу на C# Создал с помощью IntPtr hWnd = CreateWindowEx(0, "BUTTON", "ddddddd", WS_VISIBLE, 420, 120, 120, 120, handle, 0, (IntPtr)0, null); Теперь знаю хендел кнопки Куда идти дальше ?? |
10.06.2010, 15:31 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
во внедренние ДЛЛ, в которой уже перехватывайте обработчик окна(которому кнопку сунули)
далее в этом(своем) обработчике обрабатывайте сообщение от кнопки, а если другое сообщение то возвращайте управление оригинальной процедуре обработки(её надо сохранить) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.06.2010, 03:22 | #3 |
Регистрация: 10.06.2010
Сообщений: 9
|
Большая просьба поподробнее
То что Вы сообщили я придставлял, но как этосделать? |
11.06.2010, 03:43 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
шарпа не знаю, поэтому пример кода на С++ будет.
у ДЛЛ же есть EntryPoint в которой можно выделить событие присоединения к процессу(флаг fdwReason установлен в DLL_PROCESS_ATTACH) нам нужна глобальная переменная типа Код:
Код:
делаем Код:
в общем примерно так Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.06.2010, 04:20 | #5 |
Регистрация: 10.06.2010
Сообщений: 9
|
Все разговоры крутятся вокруг DLL
Почему? Опишу ситуацию. Есть программа которая расшаривает порты COM(splitter) Но она не запоминает настройки Пришла мысль создать в ней кнопку которая будет запускать и выгружать splitter с сохранением настроек Пробовал получить доступ к занятому порту, увы мозга нехватило |
11.06.2010, 04:39 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
потому что у другого процесса свое адресное пространство, программа при всем желании не сможет перейти в ваш процесс и выполнить ваш код.(только если вы его(код) перенесете внутрь того процесса, что через DLL легко делается)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.06.2010, 06:33 | #7 |
Регистрация: 10.06.2010
Сообщений: 9
|
Как перенести внутрь того процесса?
|
11.06.2010, 06:35 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
пишем ДЛЛ согласно посту 4, потом Инжектим ДЛЛ(погуглите, ибо я не занимался инжектом ДЛЛ)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.06.2010, 08:46 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как поменять рисунок на чужой форме. | Aleksandr | Безопасность, Шифрование | 4 | 28.05.2014 11:29 |
как создать кнопку в форме, которая будет создавать отчет | Tatu | Microsoft Office Access | 3 | 04.03.2010 19:13 |
Событие click по заголовку формы? | Polotenchik | Общие вопросы Delphi | 3 | 24.06.2009 12:48 |