我安装了Synaptics驱动程序,因此我可以手动禁用/启用触控板。
以下是我用C#启用/禁用触控板的方法:
private void Switch_Mouse(int i = 0) // 1: Enable, 0: Disable
{
Process.Start("control.exe", "main.cpl");
Thread.Sleep(1000);
int iHandle = FindWindow(null, "Mouse Properties");
SetForegroundWindow(iHandle); // Line ABC
SendKeys.Send("^+{TAB}");
if (i == 1)
{
SendKeys.Send("%E");
}
else
{
SendKeys.Send("%D");
SendKeys.Send("{Enter}");
}
SendKeys.Send("%A");
SendKeys.Send("{Enter}");
}
它向“鼠标属性”发送击键。但是在标记为// ABC
(上面)的行之后,“鼠标属性”应用程序会失去焦点,但它不起作用。
是否有其他方法可以通过C#启用/禁用触控板?
(OS:Window 32位)。
答案 0 :(得分:2)
这个论坛有一个主题,其中显然已经找到了问题(这是所有的VB,但幸运的是移植到C#非常简单) - > Controlling Synaptics Touchpad
看起来所有与触摸板相关的处理都从这里开始:
SynAPICtrl1.Initialize
SynAPICtrl1.Activate ' Activate to receive device notifications
DeviceHandle = SynAPICtrl1.FindDevice(SE_ConnectionAny, SE_DevicecPad, -1)
If DeviceHandle = -1 Then
MsgBox "Unable to find a Synaptics cPad"
End
End If
SynDeviceCtrl1.Select (DeviceHandle)
SynDeviceCtrl1.Activate 'Activate to receive pointing packets
ZTouchThreshold = SynDeviceCtrl1.GetLongProperty(SP_ZTouchThreshold)
它来自Synaptics SDK,正如他们所说,Synaptics SDK以及Developer Manuals