Hi everyone,
We recently had to solve a support case involving kiosk mode on a B&R PPC/APC running Windows 10. Because the native Windows kiosk mode (Assigned Access) is very limited, we ended up building a fully custom kiosk startup mechanism. It works cleanly, hides the desktop during boot, and allows launching any application (Chrome, mapp View, etc.).
Since this approach may help others facing similar constraints, I’m sharing the full explanation and scripts here.
1. Why the Native Windows Kiosk Mode Doesn’t Work in This Scenario
Windows 10/11 includes a built-in kiosk feature:
Settings → Accounts → Other Users → Set up a kiosk
However, it has two major limitations:
-
It requires a dedicated Windows user.
-
It only allows apps installed from the Microsoft Store.
This alone makes it unusable for many industrial setups—for example, when the customer wants to run Google Chrome to display a mapp View HMI, since Chrome is not a Store app.
So we needed an alternative kiosk solution.
2. The Concept: Replacing explorer.exe With a Custom Startup Script
When Windows finishes logging in, it automatically launches explorer.exe, which is responsible for:
-
Desktop
-
Taskbar
-
File Explorer windows
This behavior is controlled by a registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon → Shell
By default:
Shell = explorer.exe
So, if instead of launching explorer.exe we instruct Windows to launch a custom .bat script, we effectively override the entire desktop shell.
This gives us:
-
A clean kiosk boot (no desktop flashes)
-
Full control over what runs during startup
-
Ability to use any application, including Chrome
This is the foundation of the solution.
3. Folder Structure and Files
All scripts are stored under:
C:\kiosk\
├─ enter_kiosk.bat
├─ exit_kiosk.bat
└─ kiosk.bat
Below is what each one does.
4. Scripts
4.1 enter_kiosk.bat
Purpose: Replace the Windows shell with kiosk.bat and reboot into kiosk mode.
@echo off
echo Activating custom KIOSK mode...
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "C:\kiosk\kiosk.bat" /f
echo Kiosk mode enabled.
echo The system will reboot in 5 seconds…
shutdown /r /t 5
4.2 kiosk.bat (the custom shell)
Purpose: Defines what the system should do during kiosk startup.
Example launching Chrome in kiosk mode:
@echo off
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --kiosk http://MAPP_VIEW_WEB_SERVER
You can add any other startup actions here (logging, watchdog, autostart scripts, etc.).
4.3 exit_kiosk.bat
Purpose: Restore the normal Windows desktop by setting the shell back to explorer.exe.
@echo off
echo Restoring normal DESKTOP mode...
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d explorer.exe /f
echo Desktop restored.
echo The system will reboot in 5 seconds…
shutdown /r /t 5
5. How to Switch Between Kiosk Mode and Desktop Mode
Leaving kiosk mode
From the kiosk session:
-
Press Ctrl + Alt + Del
-
Open Task Manager
-
Select Run new task
-
Enable Create this task with administrative privileges
-
Run:
C:\kiosk\exit_kiosk.bat -
The system reboots into normal desktop mode.
Entering kiosk mode
From normal Windows:
-
Press Ctrl + Alt + Del
-
Open Task Manager
-
Select Run new task
-
Enable Create this task with administrative privileges
-
Run:
C:\kiosk\enter_kiosk.bat -
The system reboots into kiosk mode.