C#如何禁用Synaptics触控板?

时间:2012-08-08 06:28:59

标签: c# mouse

我安装了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位)。

1 个答案:

答案 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