Edit: Rephrasing my question:
Upon further troubleshooting, I can conclude that:
Touch gestures (dragging, pinch to zoom, touch-and-hold right click) in Internet Explorer start to work when:
- The system has been running for ~2 minutes. This coincides with the delayed start of services.
- Explorer.exe is being run, then killed. I assume Explorer.exe starts some services?
The services with delayed start are as follows:
- Security Center
- Software Protection
- Windows Defender, Search and Update
- Windows Font Cache Service
- Microsoft .NET Framework NGEN v4.0.30319_X64 and X86
I see no connection between these services and touch gestures, but just in case, I manually tried starting these services, but without luck.
What else happens delayed after system boot, which also happens when explorer is started?
I just found out that it is ~2 minutes from login. So that would mean services can't play a role in it. As I understand it, services have nothing to do with logging in. They run unaffected by that. And this happens every time I log off and then log back in: ~2 minutes with no touch gestures (not limited to Internet Explorer, but everything in Windows).
Details: Internet Explorer 9 and Windows 7 Professional, running on a HP TouchSmart (touch screen PC). It is going to be a kiosk PC (running a custom GUI for displaying websites).
When running Internet Explorer as a normal program in Windows 7, touch functions work perfectly. I can scroll the website by dragging it with my finger, I can pinch zoom and I can touch-and-hold right click.
I now change the default shell in Windows to Internet Explorer (ie. IE starts instead of explorer.exe). Internet Explorer of course starts up when logging in. However, touch functions are reduced to basic clicking (no dragging, no pinch zooming, no touch-and-hold right click).
Then I manually start
explorer.exe, and the touch functions work again!
And here is the weird part: When I kill
explorer.exe, the touch functions keeps working - even if I close IE and start a new instance.
The exact same, but instead of changing the default shell to Internet Explorer, I change it to my own program, which uses an embedded Internet Explorer ("WebBrowser"). Same thing happens.
What I've tried:
Autorun programs: When explorer.exe launches, it launches all the autorun programs. There are no relevant programs being run by explorer, but just in case, I have manually started all the autorun programs, so that it is identical (but without explorer.exe) to a normal login. It still does not work (until I launch explorer.exe).
Specifically TabTip.exe, TabTip32.exe and wisptis.exe are all running.
All services are also started.
To sum it up
Running explorer.exe once changes something in the touch capabilities of Internet Explorer. It doesn't matter if explorer.exe is running - as long as it has been run once.
Does anyone know what causes this behavior? Or how I can circumvent it neatly?