微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在NPLogonNotify中检测远程桌面会话事件?

到现有会话的远程桌面连接会触发networking提供商中的NPlogonNotify。 但是有没有一种方法,我可以弄清楚,如果它的login事件或连接事件到现有的会议?

检测键盘或鼠标事件是否由软件触发

我如何在远程计算机上执行命令?

如何远程桌面无需在Windows 7中显示身份validation窗口

当从远程桌面断开连接时,PyKeyboard.tap_key()不起作用

从Windows机器连接到Linux VPS框

LsaGetlogonSessionData从登录会话ID中返回终端服务会话标识。 所以你可以尝试使用WTSConnectState调用WTSQuerySession@R_750_4045@ion 。 幸运的是,结果将会区分你所关心的两个案例。

如果不是,并且在从NPlogonSession返回之前不需要知道答案,那么可以使用WTSRegisterSessionNotification来观察与NPlogonSession调用相关的终端服务会话会发生什么情况。

我相信,如果用户连接到一个现有的会话,来自NPlogonNotify的终端服务会话将返回到空闲或监听状态。 此外,NPlogonNotify调用中的登录会话将被关闭。 您可以通过调用LSAEnumeratelogonSessions来枚举登录会话。

如果用户收到一个新的会话,我相信在NPlogonNotify的调用中会使用同一个终端服务会话,所以会进入激活状态。 通常还会有一个或多个启动的进程与从调用NPlogonNotify的登录会话ID相关联。 您可以使用GetToken@R_750_4045@ion和TokenStatistics查询类来确定与进程关联的登录会话,如MSDN词汇表中的“登录标识符”所述。

需要注意的一个额外的复杂性:如果用户管理员,并且启用UAC,则会有两个对NPlogonNotify的调用一个与限制的用户令牌关联,另一个与提升的用户令牌关联。 对于本地和远程登录都是如此。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐