문제

가정하자 나는 두 가지로 작성된 응용 프로그램에서는 C#.첫 번째는 타사 응용 프로그램에 이벤트를 발생시키는"이라고 OnEmailSent".

두 번째 사용자 정의 응용 프로그램 작성하고 싶은 어떻게든 가입하"OnEmailSent"도의 첫 번째 응용 프로그램입니다.

방법은 없는 어떻게든 연결 두 번째 응용 프로그램를 인스턴스의 첫 번째 응용 프로그램 들을 위한"OnEmailSent"이벤트?


그래서 자세한 설명을 위해,특정 시나리오를 우리는 사용자 정의 타사 응용 프로그램에서 작성 c#키는"OnEmailSent"이벤트입니다.우리가 볼 수 있는 이벤트가 있는 사용하는 반사체.

우리가 무엇을 원하는 몇 가지 다른 작업을 때 이성 전자 메일을 보냅니다.

가장 효율적인 방법으로 우리의 생각할 수 있는 것을 사용할 수 있의 일부 양식을 IPC 로 anders 는 제안하고 듣기 위해 OnEmailSent 이벤트에 의해 제기되고 세 번째 파티를 구성 요소입니다.

기 때문에 구성 요소입니다 C#으로 작성된 우리가 가지고 놀고의 아이디어에 쓰기에 다른 C#응용 프로그램에 연결할 수 있는 자를 실행하는 프로세스할 때 감지 OnEmailSent 이벤트가 인상이 실행됩니다 그것은 자신의 이벤트 처리 코드입니다.


내가 누락될 수 있는 무언가를하지만,무엇에서 내가 이해하는 방법의 원격 작동하는 것 이 필요가 있는 서버 정의 어떤 종류의 계약을하는 클라이언트 구독할 수 있습니다.

나는 더 많은 사고에 대한 시나리오를 누군가가 작성된 독립 실행형 응용 프로그램을 다음과 같 outlook 예를 들어는 이벤트를 노출하고 싶어지는 가입서는 다른 응용 프로그램.

나의 시나리오의 내 생각입니다.net 디버거와 어떻게 연결할 수 있는 실행하는 어셈블리의 코드를 검사하여 동안 실행됩니다.

도움이 되었습니까?

해결책

에서는 주문 두 가지 애플리케이션(별도의 프로세스)이벤트를 교환하고,그들은 동의하는 방법에 이러한 이벤트가 전달됩니다.많은 다른 방법이고,정확하게 사용할 방법에 따라 달라질 수 있습니다 건축과 context.일반적인 용어의 종류에 대한 정보를 교환 프로세스 프로세스 간의 통신(IPC).존재는 많은 표준 방법 IPC,가장 일반적인 파일이 파이프(네트워크)sockets, remote procedure calls(RPC) 과 공유 메모리가 있습니다.윈도우에서 그것은 또한 일반적인 사용 창 메시지.

나는 확실하지 않는 방법이 작동합니다.NET/C#응용 프로그램에는 Windows 지만,native Win32 할 수 있는 응용 프로그램 걸이에서 메시지 루프의 외부 프로세스 그리고"스파이에서"메시지를 보내고 있다.하는 경우 프로그램 메시지를 생성할 때 이벤트를 원하는 함수가 호출이 될 수 있는 방법을 감지합니다.

을 구현하는 경우에는 모두 응용 프로그램 자신이 선택할 수 있습을 사용하여 어떤 IPC 방법을 선호합니다.네트워크 소켓와 높은 수준의 소켓을 기반의 프로토콜을 다음과 같 HTTP,XML-RPC 및 비누는 매우 인기있는 이러한 일로,그들은 당신이 수행하 응용 프로그램에서 다른 육체적인 기계뿐만 아니라(주어진에 연결되어 있다는 네트워크를 통해).

다른 팁

시도할 수 있습니다 스파 관리 고를 위한 프로그래밍 방식으로 액세스 ManagedSpyLib

ManagedSpyLib 소개합니스 클래스 라 ControlProxy.A ControlProxy 가 의 표현 시스템입니다.Windows.Forms.에서 컨트롤 다른 프로세스.ControlProxy 용 당신이 속성을 가져오거나 설정과 이벤트를 구독으로는 경우 내에서 실행되는 목적지 과정입니다.사용 ManagedSpyLib 한 자동화 테스트,이벤트 로깅 호환성,크로스 프로세스 통신,또는 화이트 박스 테스트합니다.

하지만 이 작동하지 않을 수 있습니다,당신을 따라 여부 ControlProxy 수 있는 어떻게든 이벤트를 액세스하신 후에 타사 응용 프로그램.

수도 있습 사용 Reflexil

Reflexil 용 IL 수정을 사용하여 강력 모노.Cecil 라이브러리에 의해 작성 Jb EVAIN.Reflexil 로 실행되는 반사체 플러그인과 감독으로 특히 IL 코드 처리가 있습니다.그것여 이 기능을 수행 을 제안하고 완전한 교육 편집기를 허용하여 C#/VB.순 코드 주입입니다.

What's 는 OnEmailSent 이벤트에서는 타사 응용 프로그램?내 말은,당신은 어떻게 응용 프로그램을 알고 있는거 같은 이벤트?

는 경우 당신 계획에 프로세스 간의 통신,첫 번째 질문은 당신 스스로에게 물어 봐야입니다:그것은 정말 필요한가?

없이 질문하기,당신이 정말로 당신이 할 필요가 프로세스 간의 통신,당신이 필요합니다 일종의 메커니즘이 있습니다.목록 긴,아주 오래입니다.에서 간단한 WM_DATA 메시지를 사용자 정의 TCP 프로토콜을 매우 복잡한 웹 서비스에 필요한 추가적인 인프라를 지원합니다.

이 질문에 그것이 무엇을,당신이 시도하고 있는지 정확히?무엇이 타사 응용 프로그램을 제어할 수 있는 권한이 없습니까?

또한,디버거가 매우 침략적인 방법으로 디버깅하는 프로세스입니다.기대하지 않는 것을 표준 프로세스 간 메커니즘을 사용하여 다른 모든 응용 프로그램.사실,그것은 아닙니다.

을 구현할 수 있는 비슷한 시나리오와 SQL Server2005 쿼리를 변경하여 알림을 maintaing 지속적인렇게 하려면 다음과 같다.인터넷 응용 프로그램을 차단하는 때까지 데이터가 변경되는 데이터베이스에서.

http://www.code-magazine.com/article.aspx?quickid=0605061.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top