기존 세션에 대한 원격 데스크톱 연결은 네트워크 공급자의 NPLogonNotify를 트리거합니다. 하지만 거기에 로그인 이벤트 또는 기존 세션에 연결 이벤트를 알아낼 수있는 방법은 무엇입니까?NPLogonNotify에서 원격 데스크톱 세션 이벤트를 감지하는 방법이 있습니까
답변
LsaGetLogonSessionData은 로그온 세션 ID에서 터미널 서비스 세션 ID를 반환합니다. WTSConnectState를 사용하여 WTSQuerySessionInformation을 호출 해보십시오. 행운과 함께, 결과는 당신이 우려하고있는 두 가지 경우를 차별화 할 것입니다.
NPLogonSession에서 돌아 오기 전에 대답을 알 필요가없는 경우 NPLogonSession에 대한 호출과 관련된 터미널 서비스 세션에 어떤 일이 일어 났는지 확인할 수 있습니다 (예 : WTSRegisterSessionNotification).
사용자가 기존 세션에 연결되어 있으면 NPLogonNotify의 터미널 서비스 세션이 유휴 상태 또는 수신 대기 상태로 돌아갈 것이라고 생각합니다. 또한 NPLogonNotify에 대한 호출의 로그온 세션이 닫힙니다. LsaEnumerateLogonSessions을 호출하여 로그온 세션을 열거 할 수 있습니다.
사용자가 새 세션을 받으면 NPLogonNotify의 호출에서 동일한 터미널 서비스 세션이 사용되므로 활성 상태로 전환됩니다. 일반적으로 NPLogonNotify에 대한 호출의 로그온 세션 ID와 관련된 하나 이상의 프로세스가 시작됩니다. MSDN 용어집의 "logon identifier"에 설명 된대로 TokenStatistics 쿼리 클래스와 함께 GetTokenInformation을 사용하여 프로세스와 연결된 로그온 세션을 확인할 수 있습니다.
사용자가 관리자이고 UAC를 사용하는 경우 NPLogonNotify에 대한 호출이 두 개 있습니다. 하나는 제한된 사용자 토큰과 관련된 것이고 다른 하나는 높은 사용자 토큰과 관련된 것입니다. 이것은 로컬 로그온과 원격 로그온 모두에 해당됩니다.
- 1. 떨리는 이벤트를 감지하는 안정적인 방법이 있습니까?
- 2. WPF 자식 창 - 원격 데스크톱 세션
- 3. Windows 2008 원격 데스크톱 연결 다중 세션
- 4. 원격 데스크톱 유휴 시간
- 5. EJB 배치 해제를 감지하는 방법이 있습니까?
- 6. Windows 원격 데스크톱 로깅
- 7. 원격 데스크톱 연결의 SetForegroundWindow
- 8. 주요 ROI를 감지하는 방법이 있습니까?
- 9. 플래시 차단기를 감지하는 방법이 있습니까?
- 10. 브라우저에 원격 데스크톱 포함하기
- 11. 원격 데스크톱 세션 - 사용자의 현재 위치 추적/가져 오기
- 12. Lubuntu 및 원격 데스크톱
- 13. 원격 컴퓨터에 연결 - 데스크톱
- 14. 원격 데스크톱 그룹에 NetUserAdd()?
- 15. 원격 데스크톱 세션 후 창 크기/위치가 변경됨
- 16. RMI 객체를 통해 이벤트를 보내는 방법이 있습니까?
- 17. 자바 원격 데스크톱 관리
- 18. C의 원격 데스크톱 프로젝트
- 19. 원격 데스크톱 고유 지침
- 20. WindowsAzure : 원격 데스크톱, 어떻게해야합니까?
- 21. UIAutomation 및 원격 데스크톱 연결
- 22. 원격 데스크톱 사용을위한 IntelliJ 키맵
- 23. 원격 데스크톱 PowerShell 스크립팅
- 24. 원격 데스크톱 연결을 수동으로
- 25. Azure의 원격 데스크톱 서비스
- 26. 종료 할 원격 데스크톱
- 27. 키보드 이벤트를 감지하는 방법은 이미 바인딩되어 있습니까?
- 28. Lync 및 원격 데스크톱 연결
- 29. viewDidUnload 이벤트를 트리거하는 방법이 있습니까?