C# i에서는 process.Kill() 프로세스를 사용하여이 이벤트를 감지하는 방법을 죽인 응용 프로그램에서 동시에 을 종료 하시겠습니까?Kill Process 이벤트를 감지하는 방법
현재 : Application.ApplicationExit 이벤트가 실행되지 않았습니다. 그것은을 winform 인 경우에
C# i에서는 process.Kill() 프로세스를 사용하여이 이벤트를 감지하는 방법을 죽인 응용 프로그램에서 동시에 을 종료 하시겠습니까?Kill Process 이벤트를 감지하는 방법
현재 : Application.ApplicationExit 이벤트가 실행되지 않았습니다. 그것은을 winform 인 경우에
, 당신은 이벤트 FormClosing
을 캡처하고 확인할 수 있습니다 CloseReason
:
None
WindowsShutDown
MdiFormClosing
UserClosing
TaskManagerClosing
FormOwnerClosing
ApplicationExitCall
그러나 process.Kill() 메서드를 사용하는 경우 FormClosing 이벤트가 실행되지 않았습니다. – guaike
@guaike, OS가 그렇듯이 강제 종료 될 이유가 없습니다. –
이 달성의 더 간단한 방법은 없습니다 코드 주입, API를 후킹 및 기타 기술의 숫자 불구하고 수 이 목표를 달성하는 데 익숙해 져야하지만 내 질문에 당신의 응용 프로그램이 예기치 않은 종료를 인식하는지 확인하기 위해 많은 추가 작업을 정말로하고 싶습니까? 다른 사람이 응용 프로그램을 종료하는 데 사용할 수있는 모든 가능한 방법을 주입/훅 (또는 선택한 모든 방법) 코드로 작성해야합니다. 누군가가 응용 프로그램을 종료 할 때 자신의 이벤트를 트리거 할 수있는 호출을 할 때 그런 사건을 처리하고 나가기 위해 준비하십시오. 기본적으로이 기능을 사용하면 다른 사람이 응용 프로그램을 닫지 못하도록 막을 수도 있습니다.
이러한 기술에 대한 추가 정보가 필요하면 알려 주시면 링크를 게시하겠습니다. 행운을 빕니다!
안녕하세요, 저는이 주제에 관심이 있습니다. 이 링크에 대해 더 자세히 읽을 수있는 링크를 제공 할 수 있습니까? 미리 감사드립니다. – kamilw
아마도 이것은 질문의 정신이 아닙니다.하지만 프로세스에서 프로세스를 "처리하거나"감지하지 않으면 사용자가 강제로 프로세스를 종료 할 수있는 메커니즘이 항상 있음을 알아 두는 것이 중요합니다. "탐지"코드에서 무엇을하려고합니까? – reuben
@Reuben 창이 닫히거나 응용 프로그램이 종료되면 일부 데이터가 저장되며 이는 내 응용 프로그램에 필요합니다. – guaike
저의 요점은 ... 예기치 않은 프로세스 종료의 경우에 대비하여 데이터를 저장할 수있는 기회를 얻는 데 의존해서는 안됩니다. 가능한 한 많이이 작업을 수행 할 수는 있지만 데이터 저장 기회를 제공하지 않고 응용 프로그램을 종료시킬 수있는 이벤트가 항상 있음을 알아야합니다. (예를 들어, 시스템의 전원 코드를 뽑을 수 있습니다.) 나는 까다 롭지 않다는 것을 의미하지는 않습니다. 비슷한 질문을 한 다른 사람들을 가리키고 싶었습니다. – reuben