mirror of
https://github.com/hansjone/netx.git
synced 2026-10-14 21:10:46 +08:00
Modernize the Windows installer, tray and runtime control; fix lifecycle bugs.
Installer: dynamic light/dark Win11 style, new brand wizard images, auto language, exclusive run mode (tray / Windows service) plus autostart and auto-update on the Tasks page (pre-selected from what is installed on upgrades, untouched by silent updates), 5 localized Start Menu entries. Tray: theme-aware rounded menu with live status, icons and status-dot tray icon; health polled off the UI thread; Settings submenu toggles autostart and daily updates; browser opened de-elevated via explorer. Fixes: - tray Stop/Start was ignored in service mode (service_run restarted the children) - all start/stop now goes through runtime_ctl.ps1 - logon tray task and SYSTEM service task were killed after 72h (default ExecutionTimeLimit); autostart was registered for the elevating account and opened a browser on every logon - uninstall left the NetXTray/NetXUpdate tasks behind - silent auto-update killed the tray without restarting it - repair_venv.ps1 was never staged into the release - wildcard NETX_HOST (0.0.0.0) broke health checks - ICO frames were PNG, which System.Drawing decodes as noise; icons now use the current brand mark Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
4c4c7d91d0
commit
e21719b66c
27 changed files with 1209 additions and 687 deletions
|
|
@ -84,11 +84,12 @@ try {
|
|||
'ResumeAfterUpdate' {
|
||||
if (-not (Test-Path -LiteralPath $stateFile)) { break }
|
||||
$state = Get-Content -LiteralPath $stateFile -Raw | ConvertFrom-Json
|
||||
if ($state.serviceWasRunning) {
|
||||
# Setup may have switched run mode (service -> tray) in between: skip what is gone.
|
||||
if ($state.serviceWasRunning -and (Get-Service -Name 'NetX' -ErrorAction SilentlyContinue)) {
|
||||
Write-LifecycleLog 'Restarting Windows service NetX after update'
|
||||
Start-Service -Name 'NetX' -ErrorAction Stop
|
||||
}
|
||||
if ($state.taskWasRunning) {
|
||||
if ($state.taskWasRunning -and (Get-NetxTask)) {
|
||||
Write-LifecycleLog 'Restarting scheduled task NetXService after update'
|
||||
Start-ScheduledTask -TaskName 'NetXService' -TaskPath '\NetX\' -ErrorAction Stop
|
||||
}
|
||||
|
|
@ -96,6 +97,17 @@ try {
|
|||
}
|
||||
'RemoveForUninstall' {
|
||||
$null = Stop-NetxRunners -Remove
|
||||
# Logon tray + daily update tasks would otherwise outlive the program files.
|
||||
foreach ($t in @('NetXTray', 'NetXUpdate')) {
|
||||
Unregister-ScheduledTask -TaskName $t -TaskPath '\NetX\' -Confirm:$false -ErrorAction SilentlyContinue
|
||||
}
|
||||
try {
|
||||
$sched = New-Object -ComObject Schedule.Service
|
||||
$sched.Connect()
|
||||
$root = $sched.GetFolder('\')
|
||||
$nx = $root.GetFolder('\NetX')
|
||||
if ($nx.GetTasks(1).Count -eq 0 -and $nx.GetFolders(0).Count -eq 0) { $root.DeleteFolder('NetX', 0) }
|
||||
} catch {}
|
||||
$stopScript = Join-Path $prog 'packaging\stop_netx_app.ps1'
|
||||
if (Test-Path -LiteralPath $stopScript) {
|
||||
& powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File $stopScript `
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue