Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Имеем чужое приложение Добавлено: 25.08.06 22:31  

Автор вопроса:  yxaxa
Стало интересно можно ли из своей программы воздействовать на чужое приложение, ну например всунуть куда нить в него кнопку и сделать чтоб по нажатию какой нить код выполнялся?

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #1
Добавлено: 26.08.06 02:06
Хуки,хуки и ещё раз хуки

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 26.08.06 07:38
Название темы - <no comments>

Ответить

Номер ответа: 3
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #3
Добавлено: 26.08.06 07:40
Вариант (обходной, правда, тупой:)) - создаешь форму без загаловка, кидешь на него контролы, апишками зыришь все окна и их названия, находишь нужное окно, апишками узнаешь его координаты и размер, перемещаешь туда свою форму. Еще надо, чтоб форма была ShowInTaskBar = False и поверх все окон ее сделать

Ответить

Номер ответа: 4
Автор ответа:
 yxaxa



Вопросов: 31
Ответов: 25
 Профиль | | #4 Добавлено: 26.08.06 11:00
Про хуки мона подробнее?

Ответить

Номер ответа: 5
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #5
Добавлено: 26.08.06 15:10
Я подсовывал ему свои кнопки через SetParent - просто, эффективно, но глючно немного :)

Ответить

Номер ответа: 6
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #6
Добавлено: 26.08.06 17:34
Делаешь библиотеку. В ней делаешь обработку окна - получение хэндла окна, в которое надо вставить кнопку. Подменяешь функцию окна через GetWindowLong SetWindowLong, в новой процедуре обрабатываешь только свою кнопку, остальное передаёшь функции DefWindowProc. Далее CretaeWindow и создаёшь баттон. Теперь днлаешь загрузку библы в процесс окна и дело в шляпе

Ответить

Номер ответа: 7
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #7
Добавлено: 26.08.06 17:36
Библиотеку можешь грузить или через SetWindowsHook или с помощью CreateRemoteThread ну или чкпрез GetThreadContext SetThreadContext

Ответить

Номер ответа: 8
Автор ответа:
 K&M



ICQ: 225442067 

Вопросов: 20
Ответов: 170
 Профиль | | #8 Добавлено: 26.08.06 19:24
У любого процесса (System.Diagnostics.Process) есть Handle главного окна (не помню правда в корне класса или в MainModule), если окон нет он равен 0, если есть, через него можно многое сделать...

Ответить

Номер ответа: 9
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #9
Добавлено: 26.08.06 19:53
Тема вопроса зачётная кстати... как этот феномен назовём? Софтофилия? гы...

Ответить

Номер ответа: 10
Автор ответа:
 yxaxa



Вопросов: 31
Ответов: 25
 Профиль | | #10 Добавлено: 26.08.06 20:59
я конечно пробану разобраться, но если не получится (я ж такого никогда не делал и эти функции впервые вижу), не затруднит написать пару строк кода в пример?

Ответить

Номер ответа: 11
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #11
Добавлено: 26.08.06 21:51
Если не знаешь, что такое функция окна (обработчик которая), можешь смело не париться и учить мат часть. Помочь не удастся кодом, ибо ты не поймёшь, как это работает и придётся писать целиком всё. Настоящую библу в ВБ не написать. Так что придётся использовать или C++(мне ближе всего) или что-нить ещё(это для SetWindowsHook). Для CreateRemoteThread достаточно будет знать адрес LoadLibrary, для SetThreadConstext байткод LoadLibrary (Path);
На ВБ либы не писал, но есть подозрение что проще будет использовать C и не париться. Дельфи отвергаю как отстой невиданного уровня.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам