Skip to content
This repository was archived by the owner on Jul 13, 2026. It is now read-only.

v2.0.0: Python Rewrite, Persistent Connections, Hotkey

Choose a tag to compare

@twolven twolven released this 19 Apr 01:18
· 11 commits to main since this release

This release marks a complete rewrite of the MouseMove and MouseMoveR applications from C++ to Python!

This migration was undertaken to simplify the codebase, improve maintainability, and address several stability and performance issues encountered previously. We've focused on streamlining the core functionality while adding a key requested feature.

Major Changes & Improvements:

  • 🚀 Complete Python Rewrite: The entire application suite (Client: MouseMove.exe and Server: MouseMoveR.exe) is now built with Python 3.
  • 🔗 Persistent TCP Connections: Replaced the old connect-per-command model. Now uses stable, persistent TCP connections, improving reliability and performance.
  • 🐛 CPU Spike Fixed: Resolved the significant CPU usage spike experienced by the client (MouseMove.exe) during startup.
  • ✅ Server Connection Handling Fixed: The server (MouseMoveR.exe) now correctly handles persistent client connections.
  • ✨ New Feature: Hotkey Process Killer: Added a configurable hotkey to the server (MouseMoveR.exe) to terminate a specified process (default: \). Uses input polling for better game compatibility.
  • ⚙️ Simplified Logic: Removed dedicated heartbeats; connection status is managed via command activity and standard socket events.
  • 📄 Unified & Compatible Config: Both client and server now read the same config.txt file, using the simple key = value format (compatible with the original C++ version's config).

Included Binaries:

  • MouseMove.exe: The client application (run on your local PC).
  • MouseMoveR.exe: The server application (run on the remote/host PC).
  • config.txt: Example configuration file. Edit this file with your settings and place it alongside BOTH executables.

Example config.txt:

# MouseMove & MouseMoveR Configuration v2.0 (Python)
# Place this ONE file in the same directory as BOTH MouseMove.exe and MouseMoveR.exe

# --- Client Settings (Used by MouseMove.exe on your LOCAL PC) ---
SERVER_IP = 192.168.1.101     # <-- REQUIRED: Change this to the Server's IP
WINDOW_TITLE = YourComputerName - Moonlight  # <-- REQUIRED: Change this (Exact Window Title)
POLL_INTERVAL = 2
VHUSB_CHECK_INTERVAL = 30

# --- Server Settings (Used by MouseMoveR.exe on your REMOTE PC) ---
DEVICE_ID = YourVHServerName.123 # <-- REQUIRED: Change this (VirtualHere Device ID)
PROCESS_TO_KILL = GameExecutable.exe # <-- OPTIONAL: Change or leave blank
HOTKEY = \                    # <-- OPTIONAL: Change or leave blank
WARNING_INTERVAL = 60

# --- Shared Settings (Used by BOTH Client and Server) ---
SERVER_PORT = 8080            # Default: 8080. Must match.