AHK không thể chặn các phím tắt Windows này. Nếu bạn không muốn chỉnh sửa giá trị đăng ký, tôi không nghĩ có một cách để làm điều này. Giá trị đăng ký là HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System: DisableLockWorkstation
nếu 1 sẽ không cho phép khóa hoàn toàn hệ thống, có hoặc không có phím tắt và với khóa 0 được cho phép và phím tắt Win + L sẽ khóa hệ thống bất kể điều gì cố gắng chặn hệ thống. Đã nhận xét (cho những người đang tìm kiếm giải pháp Win + L hoạt động nhưng không biết mã AHK):
Với chỉnh sửa sổ đăng ký:
; WARNING: Programs that use User32\LockWorkStation (i.e. programmatically locking the operating system) may not work correctly!
; This includes Windows itself (i.e. using start menu or task manager to lock will also not work).
; Script changes Win-L to show a msgbox and Ctrl-Alt-L to lock windows
; The following 3 code lines are auto-executed upon script run, the return line marks an end to the auto-executed code section.
; Register user defined subroutine 'OnExitSub' to be executed when this script is terminating
OnExit, OnExitSub
; Disable LockWorkStation, so Windows doesn't intercept Win+L and this script can act on that key combination
SetDisableLockWorkstationRegKeyValue( 1 )
return
#l::
MsgBox, Win-L was pressed! ; Arbitrary code here
return
^!l::
; Ctrl-Alt-L
; Temporary enable locking
SetDisableLockWorkstationRegKeyValue( 0 )
; Lock
DllCall( "User32\LockWorkStation" )
; Disable locking again
SetDisableLockWorkstationRegKeyValue( 1 )
return
OnExitSub:
; Enable LockWorkStation, because this script is ending (so other applications aren't further disturbed)
SetDisableLockWorkstationRegKeyValue( 0 )
ExitApp
return
SetDisableLockWorkstationRegKeyValue( value )
{
RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Policies\System, DisableLockWorkstation, %value%
}