Hello Barb,
yes, pinch-to-zoom fails in these instances as well - as does any interaction on the touchscreen using more than one finger, I would wager.
However, I've tried the trick mentionend and disabled/enabled the touch driver - this does work indeed!
I've downloaded the Windows Development Kit and wrote a short Powershell script to do the job for me (device ID might be different for anyone reading this, so be sure to check it in Device Manager):
# Get the ID and security principal of the current user account
$myWindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
$myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID)
# Get the security principal for the Administrator role
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
# Check to see if we are currently running "as Administrator"
if ($myWindowsPrincipal.IsInRole($adminRole))
{
# We are running "as Administrator" - so change the title and background color to indicate this
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
$Host.UI.RawUI.BackgroundColor = "DarkBlue"
clear-host
}
else
{
# We are not running "as Administrator" - so relaunch as administrator
# Create a new process object that starts PowerShell
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
# Specify the current script path and name as a parameter
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
# Indicate that the process should be elevated
$newProcess.Verb = "runas";
# Start the new process
[System.Diagnostics.Process]::Start($newProcess);
# Exit from the current, unelevated, process
exit
}
cd "C:\Program Files (x86)\Windows Kits\10\tools\x64"
Start-Process devcon -ArgumentList "disable @PCI\VEN_8086&DEV_9D3E&SUBSYS_00000000&REV_21\3&11583659&0&B4"
Start-Process devcon -ArgumentList "enable @PCI\VEN_8086&DEV_9D3E&SUBSYS_00000000&REV_21\3&11583659&0&B4"
Save this as pen.ps1, and create a batch file pen.bat with the following:
@ECHO OFF
PowerShell.exe -Command "& '%~dpn0.ps1'"
Then create a link to this batch file, if you want to assign a pen button click to run this script via the link (only .exe and .lnk are possible).
Now, this gives me a solution to avoid having to reboot my Surface everytime the touchscreen fails, but I'm still wondering if there is a way to automate it... Maybe it would be possible to put something together in Task Scheduler that checks if some flag
is set when the failure event occurs and then runs the script to reset the touch device.
I'm going to be looking into that more, but do any of you have a clue if there's maybe some kind of event that is triggered upon failure of the touch device?
Anyway, thanks so far!
Regards,
Hamilton