2011-02-01 3 views
7

Windows 세션 변경에 대한 알림을받는 서비스/응용 프로그램이 있습니다. Windows XP와 Windows 7 사이의 동작에 차이점이 있으며 버그인지 문서화 된 동작 변경인지 확인하려고합니다.Windows XP와 Windows 7 간의 로그 오프 알림 이벤트의 차이

알림은 다음 형식으로 제공됩니다. WTSSESSION_NOTIFICATION.

Windows XP는 Windows GUI 로그온시 WTS_SESSION_LOGON 및 Windows GUI 로그 오프시 WTS_SESSION_LOGOFF을 예상대로보고합니다.

gui 로그인시 Windows 7 x64에서 WTS_SESSION_LOGON이 생성되었지만 로그 오프시 WTS_SESSION_LOGOFF 이벤트 대신 WTS_CONSOLE_DISCONNECT 이벤트가 발생합니다.

버그입니까, 버전간에 일정한 값이 변경 되었습니까? 내가 개발 한 서비스에 대해 대단히 비판적이지는 않지만 왜 이것이 다르게 행동하는지 알고 싶습니다.

+4

WTS_CONSOLE_DISCONNECT 대신 WTS_CONSOLE_DISCONNECT 이벤트가 발생합니까? –

+0

상수 값은 변경되지 않았으며 WTS_CONSOLE_DISCONNECT는 XP 용으로 정의되었습니다 (빠른 Google 검색에 따르면). LOGOFF 이벤트가 완전히 누락 되었습니까? 어쩌면 Win7은 Logoff하기 전에 세션의 연결을 끊을 것입니까? – Zarat

+0

'WTSRegisterSessionNotification' 또는'RegisterServiceCtrlHandlerEx'를 사용하고 있습니까? 세션 분리로 인해 저는 비스타 나 윈도우 7에서 서비스를 기대하지 않을 것입니다. –

답변

1

서비스 만 Windows 7에서 WTS_SESSION_LOGOFF 이벤트를받을 수 있습니다. 서비스가 알림을 받으면 로그 오프 절차가 끝납니다 (따라서 사용자가 실행중인 모든 앱이 이미 종료 됨).

+0

Re : (WTS_CONSOLE_DISCONNECT 대신 WTS_CONSOLE_DISCONNECT 이벤트가 발생했습니다.) 실수 였고 질문을 편집하여 올바르게 바르게되었습니다. –

+0

해당 코드는 실제로 서비스입니다. 그것은 어떤 주어진 로그인 세션과 독립적으로 실행되어야하고 실제로 누가 빌드하고 활동 로그에 로그 아웃했는지 추적해야합니다. 이것이 내가 로그인 세션 중에 만 시작되면 잘못된 동작을하는 경우, 내가 작성한 최초의 네이티브 서비스이므로 동작에 대해 잘못된 것이 있습니다. wierd가 발견 한 것은 세션 로그 오프 대신 콘솔 연결 해제 이벤트를 제공하는 Windows 7 만 있다는 것입니다. Windows Vista는 XP와 같은 세션 로그 오프 기능을 제공합니다. –

+0

이 서비스는 누군가가 로그인하고 로그 아웃했다는 것을 추적하기 만하면됩니다. 예상보다 다른 사건이 발생한다는 사실은 무엇보다 성가심입니다. 그 행동이 변경되었다고 말하는 어떤 문서도 찾을 수 없기 때문에 Windows 7의 버그인지는 모르겠습니다. Microsoft에 연락하기 전에이 문제가 실제로 버그 또는 최소한 문서화되지 않은 행동 변화에 대해 Microsoft에 연락하기 전에 바보처럼 보이는 (또는 적어도 평소보다 더 많이) 나를 보전 해 주도록하십시오. –

관련 문제