RU: приложение для автоматизации макросов и рабочих действий.
EN: an application for macro and workflow automation.
Статус / Status: активный проект 2026 года; ожидает рефакторинга и переименования. / active 2026 project; refactoring and repository rename are pending.
Текущее имя / Current name: MacroPilot
Плановое имя / Planned name: macro-pilot
Topics: automation, cleanup-pending, csharp, needs-rename, needs-review, productivity, status-active, type-app
MacroPilot is a small Windows macro recorder/player written in C#.
It focuses on the ReMouse-like core workflow:
- record keyboard key down/up events;
- record mouse clicks, releases, wheel events, and optionally mouse movement;
- replay the recorded script with repeat count, speed multiplier, and start delay;
- replay the recorded script for a configured duration in minutes in the WPF app;
- show the script duration, planned run time, and remaining playback time;
- save and load editable JSON scripts (
*.macropilot.json); - start recording in the WPF app with
Ctrl+F9; - stop recording globally with
Shift+F9; - cancel playback with
Escwhen the app has focus.
MacroPilot.Core- shared script model, JSON serialization, global recorder, and playback engine.MacroPilot.App- original Windows Forms shell.MacroPilot.Wpf- newer WPF shell with a cleaner layout and duration-based replay mode.
- Windows
- For development: .NET 8 SDK or newer with Windows Desktop runtime
- For portable self-contained builds: Windows with the matching CPU architecture (
win-x64,win-x86, orwin-arm64)
dotnet build MacroPilot.slnxThe regular bin\Release\net8.0-windows output is framework-dependent. Do not copy only MacroPilot.Wpf.exe from that folder to another machine unless .NET 8 Desktop Runtime is installed and all neighboring .dll, .json, and resource files are copied with it.
To create a self-contained WPF build for another Windows machine:
.\scripts\publish-wpf-portable.ps1 -Runtime win-x64The portable output is written to artifacts\MacroPilot.Wpf\win-x64-self-contained. Copy the whole output folder to the target machine. If the folder contains only MacroPilot.Wpf.exe, that EXE already includes the required .NET runtime files.
dotnet run --project .\MacroPilot.Wpf\MacroPilot.Wpf.csprojTo run the Windows Forms version:
dotnet run --project .\MacroPilot.App\MacroPilot.App.csproj- Click
Записьor pressCtrl+F9in the WPF app to start recording. - Perform the actions you want to capture.
- Press
Shift+F9or clickСтоп. - Review or edit the action table. The
Времяcolumn shows each action delay in a readable format. - Set repeat count or switch the WPF app to minute-based duration mode. The unused repeat/duration field is hidden automatically.
- Click
Пуск.
Mouse coordinates are stored as absolute screen coordinates. For reliable playback, keep the target windows in the same positions or edit the coordinates in the table.
MacroPilot records only while the visible application is in recording mode. It ignores injected events to avoid recording its own playback output. If the target application runs as administrator, Windows may block input injection unless MacroPilot is also started with equivalent privileges.
The WPF recorder also skips mouse actions that hit the MacroPilot window itself. This prevents a recorded click on the app's Стоп button from cancelling playback on the first repeat.