@@ -20,10 +20,11 @@ internal class GlobalLockService : IGlobalLockService
2020 private readonly IServiceProvider _serviceProvider ;
2121 private readonly IWindowsMessageBox _messageBox ;
2222 private readonly IStringLocalizer < Lang > _lang ;
23+ private readonly PopupService _popupService ;
2324 public bool IsLocked { get ; private set ; }
2425 private bool _isWindowsLocked ;
2526 private CancellationTokenSource ? _cts ;
26- public GlobalLockService ( ILogger logger , AppSettings appSettings , UserActivityMonitor activityMonitor , HotkeyHook hotkeyHook , TaskManagerHook taskManagerHook , MouseHook mouseHook , SystemKeyHook systemKeyHook , IServiceProvider serviceProvider , IWindowsMessageBox messageBox , IStringLocalizer < Lang > lang )
27+ public GlobalLockService ( ILogger logger , AppSettings appSettings , UserActivityMonitor activityMonitor , HotkeyHook hotkeyHook , TaskManagerHook taskManagerHook , MouseHook mouseHook , SystemKeyHook systemKeyHook , IServiceProvider serviceProvider , IWindowsMessageBox messageBox , IStringLocalizer < Lang > lang , PopupService popupService )
2728 {
2829 _logger = logger ;
2930 _appSettings = appSettings ;
@@ -40,8 +41,10 @@ public GlobalLockService(ILogger logger, AppSettings appSettings, UserActivityMo
4041 _serviceProvider = serviceProvider ;
4142 _messageBox = messageBox ;
4243 _lang = lang ;
44+ _popupService = popupService ;
4345
4446 InitActivityMonitor ( ) ;
47+ InitUserInputHandling ( ) ;
4548
4649 _logger . Write ( "空闲自动锁定 -> 准备监控系统会话状态" ) ;
4750 SystemEvents . SessionSwitch += SystemEvents_SessionSwitch ;
@@ -61,6 +64,27 @@ private void InitActivityMonitor()
6164 AutoLockStart ( ) ;
6265 }
6366
67+ private void InitUserInputHandling ( )
68+ {
69+ _systemKeyHook . OnUserInput += ( _ , _ ) =>
70+ {
71+ if ( _appSettings . LockTips && IsLocked )
72+ {
73+ _logger . Write ( "用户输入 -> 检测到键盘输入" ) ;
74+ _popupService . ShowMessage ( _lang [ "LockTipsValue" ] ) ;
75+ }
76+ } ;
77+
78+ _mouseHook . OnUserInput += ( _ , _ ) =>
79+ {
80+ if ( _appSettings . LockTips && IsLocked )
81+ {
82+ _logger . Write ( "用户输入 -> 检测到鼠标输入" ) ;
83+ _popupService . ShowMessage ( _lang [ "LockTipsValue" ] ) ;
84+ }
85+ } ;
86+ }
87+
6488 /// <summary>
6589 /// Windows 事件监控
6690 /// </summary>
@@ -172,6 +196,9 @@ public void Lock()
172196 _mouseHook . HideCursor ( ) ;
173197 }
174198
199+ _logger . Write ( "全局锁定 -> 启用鼠标钩子" ) ;
200+ _mouseHook . InstallHook ( ) ;
201+
175202 if ( _appSettings . ScreenUnlockMethod == ScreenUnlockMethods . Hotkey )
176203 {
177204 _logger . Write ( "全局锁定 -> 允许快捷键解锁,准备放行快捷键" ) ;
@@ -190,7 +217,7 @@ public void Lock()
190217 }
191218 }
192219 }
193- _systemKeyHook . DisableSystemKey ( ) ;
220+ _systemKeyHook . InstallHook ( ) ;
194221
195222 if ( _appSettings . IsDisableWindowsLock )
196223 {
0 commit comments