diff --git a/TEST_SCENARIOS.md b/TEST_SCENARIOS.md index 73d58e9..08c2ed1 100644 --- a/TEST_SCENARIOS.md +++ b/TEST_SCENARIOS.md @@ -443,6 +443,40 @@ est précisément le piège de coalescence documenté dans CLAUDE.md. --- +## L — Démarrage avec Windows (`-tray`, série 2026-07-26) + +Le flag `-tray` est ce que « Start with Windows » écrit dans `HKCU\…\Run` +(`"" -tray`). Pour tester sans redémarrer : `PMServer.exe -tray` depuis le +dossier de sortie. **Ne pas** laisser `-tray` dans *Run → Parameters* de l'IDE, +sinon chaque F9 démarre caché. + +### L1 · démarrage caché, sans bouton de barre des tâches +- **ACTION** : lancer avec `-tray` (l'app n'étant pas déjà lancée — sinon le + mutex single-instance fait sortir la nouvelle instance immédiatement). +- **ATTENDU** : **aucune fenêtre**, **aucun bouton** dans la barre des tâches, + icône présente dans le tray, pas de balloon. +- **Historique** : le bouton restait 1-2 s. La fenêtre du formulaire n'était en + fait **jamais** visible — c'est le proxy taskbar FMX (`ApplicationHWND`) qui + s'affichait, et **avant** même que `FormCreate` soit atteint, ce qui rendait + inopérant tout correctif posé depuis le formulaire. Le masquer ne suffit pas + non plus : il faut retirer `WS_EX_APPWINDOW` et poser `WS_EX_TOOLWINDOW`, + depuis le `.dpr`, juste après `Application.Initialize`. + +### L2 · le bouton revient à la restauration +- **ACTION** : après L1, clic sur l'icône du tray. +- **ATTENDU** : la fenêtre s'ouvre **et** le bouton réapparaît dans la barre + des tâches. +- **Historique** : `WS_EX_TOOLWINDOW` est permanent — sans le rétablissement + (`TrayProxyShowInTaskbar` dans `RestoreWindowFromTray`) l'app tournait + ensuite sans aucune entrée de barre des tâches. + +### L3 · lancement normal (non-régression) ✅ +- **ACTION** : lancer **sans** `-tray`. +- **ATTENDU** : fenêtre visible et bouton de barre des tâches présents, comme + avant. Le correctif est entièrement gardé par le flag. + +--- + ## Reste à traiter (constaté pendant l'audit, non corrigé) 1. **Attachments hors garde A11.** Le contrôle « changed elsewhere » couvre le diff --git a/delphi-backend/PMServer.dproj b/delphi-backend/PMServer.dproj index 45781e2..75c9618 100644 --- a/delphi-backend/PMServer.dproj +++ b/delphi-backend/PMServer.dproj @@ -204,6 +204,7 @@ $(PreBuildEvent)]]> PMServer_Icon1.ico app.png app.png + -tray @@ -1251,8 +1252,7 @@ $(PreBuildEvent)]]> - "Z:\password-manager\delphi-backend\assets\BuildAssets.cmd" - + "Z:\password-manager\delphi-backend\assets\BuildAssets.cmd" False False