2014-11-02 2 views
-2

새 앱이 시작될 때를 감지 할 수 있다면 .net 언어 (C# 또는 VB)를 알고 싶습니다. 예 : 사용자가 내 앱이 아닌 데스크톱에서 Firefox.exe를 열면 내 앱에서이 이벤트를 감지 할 수 있습니까? 또한 실행하기 전에 "일시 중지"할 수 있습니까? 예를 들어 사용자가 응용 프로그램을 두 번 클릭하면 내 응용 프로그램이 먼저 나타나고 Yes 및 No 단추를 사용하여 해당 파일을 열어야 만 메시지가 표시됩니다. 모든 코드가 필요하지는 않지만 시스템에서 발생할 수있는 이벤트를 잡는 방법을 알아야합니다.외부 프로세스 감지 및 처리 방법

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

일부 시스템 라이브러리의 경우 시스템 수준의 후크를 잡으려고 할 수 있습니다. 따라서 새 응용 프로그램이 시작되면 hooked 라이브러리가로드되어 응용 프로그램에이를 알릴 수 있습니다. 그러나 그렇게하기가 쉽지 않을 수 있습니다. –

+0

주기적으로 'Process.GetProcesses()'를 호출하고 이전 호출과 목록을 비교하는 우선 순위가 낮은 backgound 스레드를 시작할 수 있습니다. 그러나 그 실행을 멈추기 위해서, 나는 그것이 가능하다고 생각하지 않는다. – Sjips

답변

0

user32.dll에는 System.Runtime.InteropServices.DllImport를 통해 .NET 응용 프로그램에서 사용할 정보가있는 Windows API 함수가 있습니다. GetWindowThreadProcessId을보세요. 샘플 코드는 http://www.c-sharpcorner.com/UploadFile/satisharveti/ActiveApplicationWatcher01252007024921AM/ActiveApplicationWatcher.aspx을 참조하십시오. 응용 프로그램이 실행될 때 활성화되기 때문에이 예제에 사용 된 기술로 인해 새로운 응용 프로그램 시작을 감지하게됩니다.

사용자가 앱을 실행할지 여부를 확인하도록 허용하는 것과 관련하여 질문에 답변하지 않지만 수행하려고 시도하는 방향으로 사용자를 안내합니다.