e76d88e0c7
Import the existing Electron + React + TypeScript app as the version-control baseline before the scanner rework (C# input/capture sidecar, resolution-anchored layout profiles, OCR preprocessing, eval harness, rescan-merge, GOOD interop). Housekeeping in this commit: - Remove orphaned temp_inputhelper_block.ts (duplicate of the input-helper script). - Ignore .claude/scheduled_tasks.lock local session state. - Add .gitattributes to normalize line endings (LF in repo). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
1.7 KiB
PowerShell
41 lines
1.7 KiB
PowerShell
# Beendet alle laufenden Prozesse dieses Projekts (Electron, Node/Vite, und
|
|
# einen verwaisten lokalen Input-Helper-Kindprozess), bevor eine neue Instanz
|
|
# startet.
|
|
#
|
|
# Warum das noetig ist: Ein normales Schliessen der App (X-Button) raeumt
|
|
# sauber auf (main.ts: app.on("will-quit") beendet den gespawnten
|
|
# input-helper.ps1-Kindprozess). Wird die App aber gewaltsam beendet - z.B.
|
|
# ueber Task-Manager "Task beenden" oder ein Skript, das Stop-Process -Force
|
|
# auf den Electron-Prozess anwendet - greift dieser Cleanup-Handler NICHT,
|
|
# und der Kindprozess (PowerShell mit dem Input-Helper) bleibt als Waise
|
|
# aktiv, obwohl das Hauptfenster laengst weg ist. Dieses Skript faengt genau
|
|
# das ab: es wird vor JEDEM Start (npm run dev und npm run dev:admin, ueber
|
|
# den "predev"-Hook) ausgefuehrt und raeumt vorherige Instanzen kompromisslos
|
|
# weg, egal wie sie beendet wurden.
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$project = (Resolve-Path -LiteralPath (Join-Path $PSScriptRoot "..")).Path
|
|
$electronPath = Join-Path $project "node_modules\electron\dist\electron.exe"
|
|
|
|
$killed = 0
|
|
|
|
Get-CimInstance Win32_Process |
|
|
Where-Object {
|
|
($_.Name -eq "electron.exe" -and $_.ExecutablePath -eq $electronPath) -or
|
|
($_.Name -eq "node.exe" -and $_.CommandLine -like "*$project*") -or
|
|
($_.Name -eq "powershell.exe" -and $_.CommandLine -like "*input-helper.ps1*")
|
|
} |
|
|
ForEach-Object {
|
|
Write-Host "Beende alte Instanz: $($_.Name) (PID $($_.ProcessId))"
|
|
Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue
|
|
$killed++
|
|
}
|
|
|
|
if ($killed -gt 0) {
|
|
# Windows braucht einen Moment, um Ports/Handles wirklich freizugeben.
|
|
Start-Sleep -Milliseconds 500
|
|
Write-Host "$killed alte Prozess(e) beendet."
|
|
} else {
|
|
Write-Host "Keine alten Instanzen gefunden."
|
|
}
|