j.foucher 74f48419e6 UI: borderless window with custom chrome, default 1280x720
Window
------
- Default size 1280x720 (16:9 widescreen — matches the screenshot framing
  the user requested), MinWidth=980 MinHeight=600.
- WindowStyle=None + ResizeMode=CanResize: drop the OS title bar but
  keep edge resize.
- WindowChrome: CaptionHeight=56 makes the top bar Border the
  drag-handle for moving the window. ResizeBorderThickness=6 gives
  6px of grab area on each edge, GlassFrameThickness=0 disables Aero.

Custom chrome buttons
---------------------
Three new style keys in Theme.xaml:
- WindowControlButton: 46x32 transparent button, hovers at #FFFFFF22
  (semi-translucent white) — used for minimize and maximize/restore.
- WindowCloseButton: same shape, hovers at #E81123 (Win11 red).

Three handlers wired up: OnMinimizeClick, OnMaxRestoreClick, OnCloseClick.

Caption click-through
---------------------
WindowChrome reserves the caption area for window dragging by default —
buttons inside it would otherwise feel "dead". Each interactive control
in the top bar (Vérifier les MAJ / Dossier / License pill / Activer /
Paramètres / min / max / close) gets
shell:WindowChrome.IsHitTestVisibleInChrome="True" so clicks reach the
button instead of starting a drag. The text/logo region remains
draggable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:09:14 +02:00

PS_Launcher

Launcher Windows pour l'application UE5 PROSERVE : gère plusieurs versions cohabitantes, téléchargement et installation de nouvelles versions depuis un serveur, validation de license, release notes.

Composants

  • src/ — Solution C# / .NET 8 / WPF (Visual Studio 2022 + SDK .NET 8 requis)
    • PSLauncher.App : UI WPF (style Epic Games Launcher)
    • PSLauncher.Core : services (Manifest, Download, Install, Process…)
    • PSLauncher.Models : DTOs partagés
  • server/ — Code serveur PHP 8 (à déployer sous www/PS_Launcher/ sur OVH mutualisé)

Démarrage rapide (dev)

dotnet build PS_Launcher.sln
dotnet run --project src/PSLauncher.App

Pour produire un binaire autonome distribuable (un seul .exe ~70 Mo) :

dotnet publish src/PSLauncher.App -c Release
# Sortie : src/PSLauncher.App/bin/Release/net8.0-windows/win-x64/publish/PSLauncher.exe

Configuration locale

Le launcher écrit sa config dans %LocalAppData%\PSLauncher\config.json au premier lancement. Édite serverBaseUrl pour pointer vers ton serveur :

{
  "serverBaseUrl": "https://ton-domaine.com/PS_Launcher/api",
  "installRoot": "C:\\ASTERION\\GIT\\PS_Launcher\\ASTERION_VR"
}

État (roadmap)

  • v0.1 — Scan + lancement de versions installées
  • v0.2 — Manifest distant, download ZIP, install cohabitante, release notes Markdown
  • v0.3 — Reprise (HTTP Range), retry Polly, state.json
  • v0.4 — License (MySQL + Ed25519 + DPAPI)
  • v0.5 — Settings, suppression manuelle versions, toasts
  • v1.0 — Auto-update launcher, MSI installer

Voir le plan détaillé pour la roadmap complète.

Licence / interne

Repo interne ASTERION. Ne pas distribuer.

Description
No description provided
Readme 170 MiB
Languages
C# 46%
HTML 29%
PHP 23.3%
CSS 0.6%
Batchfile 0.5%
Other 0.6%