Ignition client in kiosk mode

Hello
Is there any solution to run ignition java client in kiosk mode? (disabling close, win+D and run in full screen so user cant close or minimize client)
Thanks

Which operating system?

It’s relatively easy to do this in Linux. I use the sddm session manager set to auto-login and auto-relogin, with a custom session script that launches the app instead of the desktop. If they manage to exit the app, it just relaunches.

3 Likes

windows OS, specially windows 10

You might find this article useful. It uses a little-known feature of Windows called Assigned Access.

I used to be able to recommend DeskLock... until Win10 came out. :unamused:

AutoHotKey would do it, but if someone manages to kill it, it would no longer intercept keystrokes.

You can replace the shell (example below) and remap dangerous keys (further below) to make it most kiosk-y.

How do you add Ignition client as the app in Assigned Access?

If you are using Win10 Pro, you can’t.

From the article:


  • Windows 10 Professional: Only new “Universal Windows Platform” apps bundled with Windows 10 or installed from the Windows Store can be selected. Unfortunately, you can’t choose the Microsoft Edge web browser.
  • Windows 10 Enterprise or Education: In addition to Universal Windows Platform apps, you can choose an installed desktop applications to limit a user account to.

Ha! Since I hardly ever use Windows, and never Windows10, I haven't learned all the new ways Microsoft has castrated it.

Just out of curiosity: If only the Ignition client is to be allowed to run, why is the Windows platform a requirement?

Inertia, and general laziness of IT people, which amounts to the same thing.

Heck, if it wasn't for the automation and CAD software we use here (Rockwell, Omron, Solidworks, for example), I'd have ditched Windows a long time ago.

I run Windows in a VM for such things. Even my CAD software (an old copy of MicroStation) runs with accelerated 3D within a KVM guest. The networking flexibility is really handy for RSLinx -- I trunk or tunnel layer 2 VLANs to software bridges in Linux, and expose those to Windows as individual interfaces. Except for some latency, I can as easily program PLCs on my office lab VLANs from my porch at home, or a hotel room, as I can in the office itself.

Try it with Windows IoT Enterprise (Windows 10 Embedded essentially). Has a lot of functionality to disable a great number of hotkeys, shortcuts, etc for the User account. Can auto-login to the User account, etc. ALT+F4 gets disabled and all sorts of items that can be modified via policies. Windows Embedded is still a Windows nightmare, but has some of that functionality. Also, it has Enhanced Write Filter, to lock down the image after deployment.

But I second Phil’s solution if your IT department can maintain a Linux workstation. A lot more control over the system as a whole with that.

2 Likes

for those that want a simple and easy solution, use InTouch Lock.
It’s easy to setup and can disable and restrict any thing you can imagine. It only cost you $34.
I test it with ignition and they works perfectly.

I realize this thread is a bit old, but if you still use this method, can you share a bit of detail? Or have you found something better?
I'm a fairly experienced linux cli user, but not so familiar with mucking around in the guts of the various GUI environments.

Key pieces, after installing an XFCE desktop:

  • /usr/local/bin/visionsession marked executable:
#!/bin/bash

xfwm4 --desktop $DESKTOP &

rm -rf "$HOME/.ignition/cache" &>/dev/null

cd "$HOME/visionclientlauncher/app"
"$HOME/visionclientlauncher/app/visionclientlauncher.sh" app.home="$HOME/.ignition/clientlauncher-data"

while /bin/true ; do
	javaid="$(pgrep -u $(id -u) java)" || exit 0
	wait $javaid
done
  • /usr/share/xsessions/vision.desktop
[Desktop Entry]
Version=1.0
Name=Ignition Vision Session
Comment=Use this session to run Vision Client Launcher's default project as your desktop
Exec=visionsession
Icon=
Type=Application
DesktopNames=Vision
  • /etc/lightdm/lightdm.conf with LightDM as the default greeter:
# Autologin after 10 seconds
[SeatDefaults]
autologin-user=something
autologin-user-timeout=10
user-session=vision

Tweak to suit.

1 Like