Перехват события нажатия кнопки VB6 с обходом - PullRequest
1 голос
/ 22 февраля 2011

Я хочу добавить свою собственную DLL в процесс VB6, чтобы переопределить стандартное поведение нажатия кнопки. Цель - вызвать мой метод и никогда не вызывать код orig VB6 в обработчике события click.

Похоже, что Microsoft Detours API может помочь. В примерах показано, как внедрить мою DLL в работающий процесс; но я не уверен, что функция, которую я должен идти в обход.

В идеале, мне бы понравилась оболочка .Net для API Detours.

Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

Нет необходимости использовать Detours для этой задачи, проверьте: Внешние программы подкласса сделаны для вас

Это решение C ++ / ActiveX позволит вам создавать подклассы для окон вне вашего текущего процесса в VB6. Я менее знаком с .NET, но я знаю, что коммерческое решение Desaware SpyWorks для .NET также предоставляет эту функциональность. Сначала сделайте домашнее задание, возможно, есть бесплатное решение, и если это так, отправьте сообщение и дайте нам знать. :)

1 голос
/ 23 февраля 2011

Если это способ воздействовать на все кнопки одновременно, то я думаю, что это будет оригинальный поиск для вас; Я не думаю, что кто-то еще когда-либо чувствовал необходимость обойти время выполнения VB до такой степени. В противном случае, если это просто конкретная кнопка или форма, использование подклассов является проверенным способом.

Для получения более подробной информации о VB6 посетите сайт Карла Петерсона Classic VB:

http://vb.mvps.org/samples/

На этом сайте размещена отличная книга Брюса МакКинни "Hardcore Visual Basic":

http://vb.mvps.org/hcvb.asp

...