Custom Kiosk Mode on Windows 7/10/11 for B&R PPC/APC Devices

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:

  1. It requires a dedicated Windows user.

  2. 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:

  1. Press Ctrl + Alt + Del

  2. Open Task Manager

  3. Select Run new task

  4. Enable Create this task with administrative privileges

  5. Run:

    C:\kiosk\exit_kiosk.bat
    
  6. The system reboots into normal desktop mode.


Entering kiosk mode

From normal Windows:

  1. Press Ctrl + Alt + Del

  2. Open Task Manager

  3. Select Run new task

  4. Enable Create this task with administrative privileges

  5. Run:

    C:\kiosk\enter_kiosk.bat
    
  6. The system reboots into kiosk mode.

16 Likes

Thanks for sharing :slight_smile: