feat(native): C# input/capture sidecar replacing the PowerShell helper
Implements ADR-008. native/input-helper is a self-contained .NET 9 console exe speaking the identical JSON-over-stdin/stdout protocol as the old PowerShell helper (ping/cursor/runtime/focus/click/scroll/bounds/capture), so the InputHelperService interface is unchanged. - Win32 interop compiled once (native exe), not per call. - PerMonitorV2 DPI via manifest so click/capture coordinates stay correct on mixed-DPI multi-monitor setups. - capture returns base64 PNG bytes inline (imageBase64) instead of writing a temp file per frame; the client handles both base64 and the PowerShell path. - InputHelperClient prefers the exe and falls back to the embedded PowerShell helper when the exe is absent, so the app still runs without the .NET build. - main.ts resolves the exe (INPUT_HELPER_EXE env -> packaged resources/input-helper -> native/input-helper/bin/publish). electron-builder ships it via extraResources. - npm run helper:build; README documents the build + fallback. Verified end-to-end through the compiled client: sidecar spawns, runtime info and a base64 primary-screen capture return correctly. Build stays green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,20 @@ npm run dev
|
||||
|
||||
Use the Electron app window for scanner work. The browser preview does not expose the local capture bridge.
|
||||
|
||||
### Input/Capture helper (C# sidecar)
|
||||
|
||||
Input automation and screen capture run through a compiled C# sidecar
|
||||
(`native/input-helper`, see ADR-008). Build it once:
|
||||
|
||||
```powershell
|
||||
npm run helper:build # requires the .NET SDK; produces a self-contained exe
|
||||
```
|
||||
|
||||
The app auto-detects the exe (`INPUT_HELPER_EXE` env override → packaged
|
||||
`resources/input-helper` → `native/input-helper/bin/publish`). If the exe is not
|
||||
present it falls back to the embedded PowerShell helper, so the app still runs
|
||||
without the .NET build - just slower and with the old per-frame temp-file capture.
|
||||
|
||||
### Automatischer Scan: als Administrator starten
|
||||
|
||||
Genshin läuft erhöht (Administrator). Windows (UIPI) verwirft dann alle simulierten Maus-Eingaben aus einer nicht-erhöhten App - SendInput meldet dabei trotzdem Erfolg. Für den automatischen Scan muss die App deshalb ebenfalls erhöht laufen:
|
||||
|
||||
Reference in New Issue
Block a user