@echo off
setlocal
rem ============================================================================
rem  TEKNI-PLI - Atelier Guillotine en IMPRESSION DIRECTE
rem ----------------------------------------------------------------------------
rem  Lance Chrome avec --kiosk-printing : les etiquettes sortent DIRECTEMENT sur
rem  l'imprimante par defaut, sans boite de dialogue.
rem
rem  POSTE DEDIE : ce raccourci utilise votre profil Chrome HABITUEL (vos mots de
rem  passe et sessions restent disponibles). En contrepartie, TOUTE impression
rem  faite depuis Chrome sur ce PC partira sans confirmation sur l'imprimante par
rem  defaut. C'est le comportement voulu sur un poste d'atelier dedie.
rem
rem  CONTRAINTE TECHNIQUE : Chrome n'applique l'option qu'au DEMARRAGE. Si Chrome
rem  tourne deja sans elle, ce script propose de le fermer puis le rouvre - sinon
rem  Windows se contenterait d'ouvrir un onglet dans l'instance existante et
rem  l'option serait ignoree (c'est la cause n1 de "la boite s'ouvre quand meme").
rem
rem  A FAIRE UNE SEULE FOIS :
rem   1. Installer la Brother QL-1110NWB sur ce PC.
rem   2. La definir comme IMPRIMANTE PAR DEFAUT de Windows, puis decocher
rem      "Autoriser Windows a gerer mon imprimante par defaut".
rem   3. Dans les proprietes de l'imprimante : rouleau DK charge + longueur de
rem      coupe (rouleau continu).
rem   4. Lancer ce raccourci, ouvrir la page Etiqueteuse, lancer le test.
rem ============================================================================

set "URL=https://gestion.tekni-pli.com/custom/teknipli/atelier_guillotine.php?direct=1"

set "CHROME="
if exist "%ProgramFiles%\Google\Chrome\Application\chrome.exe" set "CHROME=%ProgramFiles%\Google\Chrome\Application\chrome.exe"
if not defined CHROME if exist "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" set "CHROME=%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe"
if not defined CHROME if exist "%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe" set "CHROME=%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe"

if not defined CHROME (
    echo.
    echo  ERREUR : Google Chrome est introuvable sur ce PC.
    echo  Installez Chrome, puis relancez ce raccourci.
    echo.
    pause
    goto :fin
)

rem -- Chrome tourne-t-il ? (tasklist : aucun guillemet a echapper)
set "TOTAL=0"
tasklist /FI "IMAGENAME eq chrome.exe" 2>nul | find /I "chrome.exe" >nul && set "TOTAL=1"

rem -- Tourne-t-il DEJA en impression directe ? (guillemets simples uniquement,
rem -- sinon cmd casse le filtre en passant la commande a PowerShell)
set "KIOSK=0"
for /f "usebackq delims=" %%i in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "$c=0;foreach($x in (Get-CimInstance Win32_Process -EA SilentlyContinue)){if($x.Name -eq 'chrome.exe' -and $x.CommandLine -like '*kiosk-printing*'){$c++}};$c"`) do set "KIOSK=%%i"

if %KIOSK% GTR 0 (
    echo Chrome tourne deja en impression directe : ouverture de l'atelier...
    start "" "%CHROME%" "%URL%"
    goto :fin
)

if %TOTAL% GTR 0 (
    echo.
    echo  Chrome est deja ouvert SANS l'impression directe.
    echo  Chrome n'accepte cette option qu'au demarrage : il faut le fermer
    echo  puis le rouvrir. Vos onglets seront perdus, vos sessions conservees.
    echo.
    choice /C ON /N /M "  Fermer Chrome et relancer en impression directe ? [O]ui / [N]on : "
    if errorlevel 2 goto :annule
    echo  Fermeture de Chrome...
    taskkill /IM chrome.exe /F >nul 2>&1
    timeout /t 3 /nobreak >nul
)

echo Lancement de l'atelier guillotine en impression directe...
start "" "%CHROME%" --kiosk-printing --start-maximized "%URL%"
goto :fin

:annule
echo.
echo  Annule. Tant que Chrome n'est pas relance par ce raccourci,
echo  les etiquettes passeront par la boite de dialogue d'impression.
echo.
timeout /t 6 /nobreak >nul

:fin
endlocal
