c7138b541d
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>
24 lines
1.0 KiB
XML
24 lines
1.0 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<TargetFramework>net9.0-windows</TargetFramework>
|
|
<Nullable>enable</Nullable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<AssemblyName>InputHelper</AssemblyName>
|
|
<RootNamespace>GenshinAssistant.InputHelper</RootNamespace>
|
|
<!-- Screen.PrimaryScreen (Forms) + Bitmap/Graphics.CopyFromScreen (Drawing). -->
|
|
<UseWindowsForms>true</UseWindowsForms>
|
|
<!-- Single self-contained exe: no .NET install needed on the user's machine. -->
|
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
|
<SelfContained>true</SelfContained>
|
|
<PublishSingleFile>true</PublishSingleFile>
|
|
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
|
<InvariantGlobalization>true</InvariantGlobalization>
|
|
<!-- Per-monitor DPI v2 so SendInput/capture coordinates match a mixed-DPI
|
|
multi-monitor setup (same reason as the old PowerShell helper). -->
|
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
|
</PropertyGroup>
|
|
|
|
</Project>
|