2009-06-10 2 views

답변

1

권한이있는 경우 언제든지 작업 관리자에서 응용 프로그램을 종료 할 수 있습니다. 응용 프로그램 창에 닫기 아이콘 및 닫기 메뉴 옵션이있는 시스템 메뉴 옵션을 표시하지 않거나 표시 만 할 수는 있지만 이전에 언급 한 것처럼 사용자가 작업 관리자에서 종료하지 못하게 할 수는 없습니다. 대신, 나는 사용자가 무슨 일이 일어나고 있는지 이해할 수 있도록 애플리케이션에 바쁜 처리 아이콘을 보여줄뿐입니다.

2

GUI가 별도의 스레드에서 작동하여 (잘하면) "응답하지 않음"이되지 않도록하십시오.

+0

동의합니다. 프로그램이 "응답하지 않음"이라면 잘못된 결과가 발생합니다. – Talljoe

5

당신이 묻는 것은 불가능한 것만은 아닙니다 (충분한 권한을 가진 사용자는 어떤 OS이든 관계없이 프로세스를 종료 할 수 있습니다), 그것은 끔찍한 User Experience (UX) 결정입니다.

사용자의 관점에서 생각해보십시오. 응용 프로그램을 보면서 거기에 앉아 있습니다. 응용 프로그램은 아무 것도하지 않는 것으로 보이며 작업을 수행하는 시각적 피드백을 제공하지 않습니다. 응용 프로그램이 멈춘 것으로 생각하고 다시 시작하십시오.

스크롤 진행률 표시에서부터 장기 실행 프로세스가 UI 스레드의 일부 정보를 업데이트하는 것까지 할 수 있습니다 (중간 설치의 설치 프로그램을 생각해보십시오 ... 계속해서 어떤 파일을 배치하는지 알려줍니다) 오히려 당신을 기다리게하는 것보다). 어쨌든 사용자에게 시각적 피드백을 제공하여 응용 프로그램이 아직 실행 중임을 알 수 있도록해야합니다.

2

프로그래밍에 관한 질문 인 경우, GUI 스레드를 어떻게 든 묶었으므로 프로그램이 절대로 그 상태에 있지 않아야합니다. 그리고 Windows 나 사용자가 프로그램을 종료하지 못하게 할 수 없습니다. 그들은 당신의 코드가 쓰레기라는 것을 알았고 강제적으로 소중한 주소 공간에서 던져 버릴 권리가 있습니다.

어쨌든 프로그램이 너무 바쁜 다른 일을합니다. 사용자가 응답 할 수없는 경우 프로그램 자체를 보호하는 데 시간을 낭비 할 수 없습니다.

어떤 시점에서 개발자는 컴퓨터가 속한 두꺼운 두개골을 통해 사용자이 아닌이를 가져와야합니다.

물론이 문제를 방지하기 위해 (예 : PC에서) Windows를 구성하는 방법에 대해 이야기하고 있다면이 질문은 serverfault에 속합니다.

1

하지 마십시오. 응용 프로그램의 중요성에 관계없이 사용자가 자신의 시스템을 제어 할 수있는 능력이 더 중요합니다.

0

닫기 버튼을 사용 중지하면됩니다. 사용자는 여전히 작업 관리자 나 비슷한 도구에서이를 제거 할 수 있습니다. 특권화 된 프로세스로 시작하면 더 어렵게 만들 수 있지만 그만큼 더 많은 문제가 있습니다.

관련 문제