I use a Fujitsu tablet with both the Pen and touch feature much like the Thinkpad discussed on this thread. I too would be interested in a tray icon that would allow me to switch the touch input off and on with a single click or hotkey. Fujitsu software supplied just opens the tablet PC.cpl to the touch settings tab.
I am currently using Windows 7 x64 and it is my understanding that the touch devices run with windows generic drivers . I did a little investigating and found that the registry value that enables/ disables the touch input is: TouchGate @key HKCU\Software\Microsoft\Wisp\Touch . Also, the process that controls the input devices is wisptis.exe . On my system, this process appears twice, running under the system and again under current user. I killed the process and it came back on its own.
I developed a primitive vb script with the little knowledge I have of logic, a little research, and previous experience developing bat files for win98 as a kid. its pretty straight forward. first, it reads the registry setting for TouchGate then it toggles it between on and off. After it is killed, wisptis.exe restarts on its own. Use it at your own risk. I would like to find more elegant way to accomplish this task. However, I am out of time and need to put this aside as it accomplishes, at least temporarily, what I need.
Please note, I have not found any side effects by terminating the process. However, I would use caution on your system.
Dim WshShell, dKey
Set WshShell = WScript.CreateObject("WScript.Shell")
'::reads registry setting::'
dkey = WshShell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\TouchGate")
'::toggles registry key setting between 0(off) and 1(On)'
If dkey = 1 Then
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\TouchGate", 0, "REG_DWORD"
Else
WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\TouchGate", 1, "REG_DWORD"
End If
'::Kills wisptis.exe process::'
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'wisptis.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
these links were a lot of help:
http://msdn.microsof...394599(v=vs.85).aspx (learned to terminate a service using vb)
http://msdn.microsof...ibrary/yfdfhz1b.aspx (learned how to make registry tweaks using vb, way easier than cml)
ttfn
iOCUS