From 868fa480dd540be83824a19f16e2690124a678d1 Mon Sep 17 00:00:00 2001 From: Stanislav N Mikhailov Date: Wed, 25 Feb 2026 22:29:00 +0300 Subject: [PATCH] Add tray double-click toggle for sleep blocking --- Puer.exe | Bin 413696 -> 414208 bytes include/template.inc | 4 +++- src/Puer.asm | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Puer.exe b/Puer.exe index 57b5a3c9716e69dcba4d253d471dafeb576193f5..37f20b396d3a78f9fcb84dc42d4549af23058d3a 100644 GIT binary patch delta 748 zcmZ`%O=uHA6rR~+Hh)bwT1T3oZLOtAv51x;rBcbk$|48_DF}M7D2n$6Pa%oRB4Me2 zg9v)4hzAdf2M^L)e~d#wL_LTUDG0r2v52U65XbLrQ^A7^@Bf?kz4zGa-E8%K_S(Cg zIXruTwZ1Q`m!+)sL1rUy^!nHJWQTy4f!OL3-!qVG0b8cXSaI*!sp%=iaSLi6glt9~ zvhsYZItM-RkZqt;rS2bME+B386YDRnzm$ep3W zj6Y$F2`?JFGIAEV=F+WNAOCzK{%rf^FNzy8I^nk-NK!4wd#w(ke#f8lg4ak~ZX`Iw Qf5O%CD!vZ8KB?;gAxNb6Q2$P3sAsg;-`09cbI`J0U&0X{EAUqlLM*{ zN;xnvIOwG$mL!7sOh9Y^rTHe?F{v{OOilxmew+K4te6>fCZA+gmtV!mz|dSP!N}iw z9H{ias0km?qE6Pg@<6Ja_t|8AHburGlMUHg>p4A+9{?(0IC=QxO&|r-#LC|~4ao9n zu2lf)ZvZlnvwFxeFsuLxcDo7y&2a^CkFz=hNuWJImMxIQ4rZAHS*$>Bd33Yh0WyJV z4M9{duMwCMwUq@q=OGVJ?D#>T4rQR6=zFl>Q;=Zu4~7y!k8WQ9kK>1c(m=Ilyp#Jm z9GKSdOuopWAvO!7sJAuX|NsABRoxfAiX1jNih%mT!$+mCXyS-SxMC!uMa diff --git a/include/template.inc b/include/template.inc index 1e9992b..9a123b3 100644 --- a/include/template.inc +++ b/include/template.inc @@ -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 diff --git a/src/Puer.asm b/src/Puer.asm index aae76de..011da71 100644 --- a/src/Puer.asm +++ b/src/Puer.asm @@ -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 + +