win32 捕获锁屏消息

本文介绍如何使用Win32 API在Windows系统中捕获锁屏和解锁事件。通过注册WTSSESSION_CHANGE消息并在消息循环中处理,可以实现对用户锁屏状态的监控。

参考:

https://docs.microsoft.com/en-us/windows/win32/termserv/wm-wtssession-change

https://docs.microsoft.com/en-us/windows/win32/api/wtsapi32/nf-wtsapi32-wtsregistersessionnotification

1. 注册,一般在创建窗口的时候调用注册,销毁窗口的时候反注册。

BOOL
WINAPI
WTSRegisterSessionNotification(
    HWND hWnd,
    DWORD dwFlags
    );

BOOL
WINAPI
WTSUnRegisterSessionNotification(
    HWND hWnd
    );

2.在消息循环中添加对WM_WTSSESSION_CHANGE消息的处理.

我是这样用的:

LRESULT Demo::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_CREATE:
	{
		WTSRegisterSessionNotification(hWnd, NOTIFY_FOR_THIS_SESSION);
	}
	break;
	case WM_DESTROY:
	{
		WTSUnRegisterSessionNotification(hWnd);
	}
	break;
	case WM_WTSSESSION_CHANGE:
	{
		switch (wParam)
		{
		case WTS_SESSION_LOCK:
		{
			//锁屏
		}
		break;
		case WTS_SESSION_UNLOCK:
		{
			//解锁
		}
		break;
		default:
			break;
		}
	}
	break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值