Add tray double-click toggle for sleep blocking

This commit is contained in:
Stanislav N Mikhailov
2026-02-25 22:29:00 +03:00
parent 2684590f2a
commit 868fa480dd
3 changed files with 36 additions and 1 deletions
BIN
View File
Binary file not shown.
+3 -1
View File
@@ -14,7 +14,8 @@ WM_SHELLNOTIFY equ WM_USER+5
.data?
hInstance HINSTANCE ? ; Хэндл нашей пpогpаммы
CommandLine LPSTR ?
hIcon dq ? ; icon handle
hIcon dq ?
sleepBlockEnabled dq ?
TRAYICONDATAA STRUCT
cbSize DWORD ?
@@ -71,3 +72,4 @@ IDM_RESTORE equ 1000
IDM_EXIT equ 1010
IDI_ICON equ 1020
IDI_ICON2 equ 1030
+33
View File
@@ -60,6 +60,7 @@ WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if rax ==-1
invoke PostQuitMessage,NULL ; выходим из пpогpаммы
.else
mov sleepBlockEnabled,1
mov rax,0
ret
.endif
@@ -83,6 +84,36 @@ WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.endif
mov rax,0
ret
.elseif uMsg==WM_SHELLNOTIFY
.if wParam==IDI_TRAY
.if lParam==WM_LBUTTONDBLCLK
.if sleepBlockEnabled==1
invoke SetThreadExecutionState,ES_CONTINUOUS
invoke LoadIcon,hInstance,IDI_ICON2
.if rax==0
invoke LoadIcon,NULL,IDI_APPLICATION
.endif
mov hIcon,rax
mov note.hIcon,rax
mov note.uFlags,NIF_ICON
invoke Shell_NotifyIconA,NIM_MODIFY,addr note
mov sleepBlockEnabled,0
.else
invoke SetThreadExecutionState,ES_CONTINUOUS or ES_SYSTEM_REQUIRED or ES_DISPLAY_REQUIRED
invoke LoadIcon,hInstance,IDI_ICON
.if rax==0
invoke LoadIcon,NULL,IDI_APPLICATION
.endif
mov hIcon,rax
mov note.hIcon,rax
mov note.uFlags,NIF_ICON
invoke Shell_NotifyIconA,NIM_MODIFY,addr note
mov sleepBlockEnabled,1
.endif
.endif
.endif
mov rax,0
ret
.elseif uMsg==WM_PAINT
invoke myPaint,hWnd
.elseif uMsg==WM_ERASEBKGND
@@ -111,3 +142,5 @@ myPaint proc hWndPaint:HWND
myPaint endp
end