두 개 이상의 응용 프로그램에서 볼 수있는 공개 이벤트를 발생시키는 방법을 찾고 있습니다. 가장 먼저 떠오르는 것은 SystemEvents입니다.C# 다른 응용 프로그램에서 볼 수있는 시스템 이벤트 만들기
새 SystemEvent 또는 둘 이상의 응용 프로그램이보고들을 수있는 공개 이벤트를 "정의"하는 방법이 있습니까?
두 개 이상의 응용 프로그램에서 볼 수있는 공개 이벤트를 발생시키는 방법을 찾고 있습니다. 가장 먼저 떠오르는 것은 SystemEvents입니다.C# 다른 응용 프로그램에서 볼 수있는 시스템 이벤트 만들기
새 SystemEvent 또는 둘 이상의 응용 프로그램이보고들을 수있는 공개 이벤트를 "정의"하는 방법이 있습니까?
정말 SystemEvent를 사용해야합니까? 다른 방법은 어떻습니까? IPC
IpcChannel은 사용자의 요구 사항에 맞는 대체 기술입니다.
쉬운 .Net이 없다고 생각합니다. 내가 아는 유일한 방법은 PostMessage
또는 SendMessage
을 Windows 이벤트 대기열에 사용하는 것입니다. About Messages and Message Queues의 내용을 읽을 수 있습니다. Google에서 이러한 기본 명령을 호출하는 데 필요한 많은 리소스가 있지만 가장 좋은 방법 중 하나는 pinvoke.net입니다.
SystemEvents의 기본 구성 요소는 모든 최상위 창으로 브로드 캐스팅되는 Windows 메시지입니다. WM_SETTINGCHANGED 같은 메시지 당신도 HWND_BROADCAST를 사용하여 SendMessageTimeout을 pinvoke하여 메시지를 브로드 캐스팅 할 수 있습니다. 이것은 다소 위험합니다. 이전에 메시지 번호를 본적이없는 프로그램에 메시지를 보낼 것입니다. 최소한 RegisterWindowMessage()를 사용하여 알려진 고유 한 메시지 번호와 알림을 인식하고 나머지 프로세스를 혼동하지 않도록하는 프로세스를 확보해야합니다.
예를 들어 명명 된 파이프 서버와 같이 위험이 적은 신뢰할 수있는 메커니즘이 있습니다.
시스템 이벤트는 실제로 원하는 것입니까 아니면 가능한 아이디어입니까? 프로세스 간 통신 (IPC)을 수행하는 방법은 여러 가지가 있습니다. –
@DaveHillier : 응용 프로그램은 이벤트의 유용 여부를 처리해야합니다. –
하지만 SystemEvent를 사용해야합니까? 방법에 대해 IpcChannel, 나는 그것이 방송을 지원한다고 생각한다. –