使用python检测用户登陆状态

win32ts.WTSRegisterSessionNotification
监控计算机状态改变
https://msdn.microsoft.com/en-us/library/aa383841(v=vs.85).aspx

用户状态改变后,执行函数myststa(event),其中event代表用户状态信息,具体值查
https://msdn.microsoft.com/en-us/library/aa383828(v=vs.85).aspx
代码:

import win32con
import win32gui
import win32ts

WM_WTSSESSION_CHANGE        = 0x2B1

class WTSMonitor():
    className = "WTSMonitor"
    wndName = "WTS Event Monitor"
    def __init__(self):
        wc = win32gui.WNDCLASS()
        wc.hInstance = hInst = win32gui.GetModuleHandle(None)
        wc.lpszClassName = self.className
        wc.lpfnWndProc = self.WndProc
        self.classAtom = win32gui.RegisterClass(wc)
        style = 0
        self.hWnd = win32gui.CreateWindow(self.classAtom, self.wndName,
            style, 0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
            0, 0, hInst, None)
        win32gui.UpdateWindow(self.hWnd)
        win32ts.WTSRegisterSessionNotification(self.hWnd, win32ts.NOTIFY_FOR_ALL_SESSIONS)
    def start(self):
        win32gui.PumpMessages()
    def stop(self):
        win32gui.PostQuitMessage(0)
    def WndProc(self, hWnd, message, wParam, lParam):
        if message == WM_WTSSESSION_CHANGE:
            self.OnSession(wParam, lParam)
    def OnSession(self, event, sessionID):
        print(event)
        myststa(event)
if __name__ == '__main__':
    m = WTSMonitor()
    m.start()

转载于:https://blog.51cto.com/13723657/2108705

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值