v1.4.1 — the stop button did not work while the screen was held
The stop button did not work while the screen was held
Install this one. The tray menu is the only way to pause or stop a takeover from outside. The code said a takeover could not lock anyone out of it, and gave a reason:
the tray icon and its menu are a normal window, not part of the swallowed input.
That reasoning is wrong. A low-level mouse hook intercepts input before any window sees it — being a normal window has nothing to do with it. So while a block was held, a real click on the tray icon was swallowed like every other click, and Pause and Stop were unreachable during the only moments they exist for.
The emergency brake did not work while the car was moving.
What changed
The taskbar is carved out of the swallowing, and so is the whole screen while the menu is open — keyboard included, so the menu can be driven with arrow keys and Enter. TrackPopupMenu runs its own message loop and does not return until the menu closes, so the flag is set around it in a try/finally. The taskbar's rectangle is re-read once a second, because it can move or auto-hide.
The risk of the carve-out is small and worth it by a wide margin: the taskbar is not where the assistant works, and somebody reaching for the tray during a takeover is trying to stop it.
How it was found
Not by anything going wrong — by working through the last item on the open list, which had said for months that the tray controls "must stay clickable while the guard is swallowing the mouse, or they are decoration." They were decoration.
What is still unmeasured, and now the only thing left on that item: a human clicking it mid-takeover and seeing the menu open. If you install this, that is the one thing worth trying.
Two downloads — take the one for your AI
| Download | For | How |
|---|---|---|
pc-screen-control.mcpb |
Claude Desktop | Settings → Extensions → Advanced → Install extension |
pc-screen-control-gpt.zip |
ChatGPT desktop, Codex, Cursor, VS Code, Cline, Zed | Extract, double-click INSTALL-FOR-GPT.bat, restart |
Same server.py, same bundled libraries, same 34 tools. Only the wrapper differs.
Install
Claude: remove the old version first (Settings → Extensions), quit Claude completely including the tray icon, install the .mcpb, start twice. Run self_test — it should report 1.4.1, all green.
ChatGPT / Codex: extract the zip, double-click INSTALL-FOR-GPT.bat, restart ChatGPT.
Needs Windows and Python 3.9+ with "Add python.exe to PATH" ticked.
Verify the downloads (optional)
pc-screen-control.mcpb
SHA-256: 43e240de2fc6fa320508c9bca5513c789206cecbfdc6a1cf7f7d0fddce30926e
Size: 7767974 bytes
pc-screen-control-gpt.zip
SHA-256: 112df4197be5e6f901647b1773914478397c92e1b00f0d2702923f127a1e6c0e
Size: 7674290 bytes