2011-02-22 5 views
1

단추의 기본 클릭 동작을 무시하기 위해 VB6 프로세스에 자체 DLL을 삽입하고 싶습니다. 목표는 내 메서드를 호출하고 절대로 VB6 코드를 클릭 이벤트 처리기에서 호출하지 마십시오.Intercept VB6 Button Detours로 이벤트 클릭

Microsoft Detours API가 도움이 될 것으로 보입니다. 샘플은 DLL을 실행중인 프로세스에 주입하는 방법을 보여줍니다. 그러나 내가 우회해야하는 기능을 잘 모르겠다.

Idealy, 나는 Detours API 용 .Net 래퍼를 좋아합니다.

도움을 주시면 감사하겠습니다.

답변

2

이 작업 본론을 사용할 필요가 없습니다, 체크 아웃 : Subclass External Programs done for you

이 C++/액티브 솔루션을 사용하면 VB6에서 현재 프로세스 외부에서 윈도우를 서브 클래 싱 할 수 있습니다. .NET에 익숙하지 않지만 상업용 솔루션 Desaware SpyWorks for .NET도이 기능을 제공한다는 것을 알고 있습니다. 숙제를 먼저하고 거기에 무료 솔루션이 있는지, 그렇다면 다시 게시하여 알려주십시오. :)

+0

: 해당 사이트에 호스팅

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

브루스 맥키 니의 훌륭한 책 "하드 코어 Visual Basic에서"입니다 :

고급 VB6 정보에 대한

, 칼 피터슨의 클래식 VB 사이트를 체크 아웃 1 나는 서브 클래 싱을하는 것처럼 들린다. 또는 아마도 후크 – MarkJ

1

만약 모든 버튼에 즉시 영향을 미칠 수 있다면, 나는 이것이 당신이 할 수있는 독창적 인 연구가 될 것이라고 생각합니다. 난 다른 사람이 VB에서 런타임을이 정도까지 우회 할 필요성을 느낀 적이 없다고 생각합니다. 그렇지 않으면, 그것이 단지 특정 버튼이나 폼이라면, 서브 클래 싱은 검증 된 방법입니다. +

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