3

我安装了 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# 启用/禁用触控板?

(操作系统:窗口 32 位)。

4

1 回答 1

2

这个论坛有一个主题,显然问题已经解决(这都是 VB,但幸运的是移植到 C# 非常简单)->控制 Synaptics 触摸板

看起来所有与触摸板相关的处理都从这里开始:

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以及开发人员手册

于 2012-08-08T06:40:43.387 回答