2011-09-24 1 views
15
가상 머신이 실행되는 동안 나는 Windows를 종료하려고 할 때

VM웨어 워크 스테이션 뭔가 아주 멋진 수행합니다방지 Windows 종료

VMWare prevents Windows shutdown with a custom message

일반적으로, 우리는 "이 프로그램은 Windows를 방해하는 볼 것 새 "1 가상 머신이 사용 중임을 알리는 대신"종료 중 "메시지가 표시됩니다.

VM웨어는 어떻게합니까? Google에서 API를 찾을 수 없었습니다.

+0

명령 줄에서 shutdown 명령을 사용할 때 표시 할 사용자 지정 종료 메시지를 지정할 수 있습니다. 아마도 이것은 관련이 있습니까? – stijn

답변

11

Vista에서 도입 된 변경 사항은 모두 here에서 읽을 수 있습니다. 이 기사를 매우 신중하게 읽어야합니다.

찾고있는 API는 ShutdownBlockReasonCreate, ShutdownBlockReasonDestroyShutdownBlockReasonQuery입니다. 이 API는 Vista/2008 서버에서만 사용할 수 있습니다. 2000/XP에서 폴백 동작을 구현해야합니다.

종료를 차단해야하는 경우 ShutdownBlockReasonCreate (으)로 핸들을 기본 창에 전달하고 이유를 문자열로 전달하십시오. 이 문자열은 차단 된 대화 상자에 표시되는 것으로, 즉 스크린 샷에서 '1 개의 가상 머신이 사용 중입니다.'입니다.

종료를 차단하는 작업이 완료되면 ShutdownBlockReasonDestroy을 호출합니다.

모든 조각을 맞추기 위해서는 여전히 WM_QUERYENDSESSION을 구현해야합니다. 이것은 실제로 시스템 종료를 차단하는 부분입니다.

XP에서도 WM_ENDSESSION에 응답해야하며 앱이 종료를 막는 경우 정중 한 이유를 나타내는 메시지가 표시됩니다. 그렇게하지 않으면 컴퓨터가 종료 지시를 무시하는 이유에 대해 사용자가 머리를 긁적 거리게됩니다.

+1

[WM_QUERYENDSESSION에 응답하는 것을 잊지 마십시오.] (http://msdn.microsoft.com/en-us/library/ms700677(v=vs.85).aspx) – bzlm

+0

Ahh, 감사합니다! Google을 통해 이들을 찾았지 만 설명서가 UI에 영향을 미친다는 점에서 설명서가 그다지 효과적이지 않으므로 메시지 상자 (예 : 메시지 상자 사용)가 표시 될 것이라고 생각했습니다. – foxy

+1

열쇠는 제가 답변의 첫 문장에서 링크 한 방언입니다. 종료 처리에 대한 안내입니다. API 문서는 항상 조금 더 간결합니다. –