C# Как отключить тачпад Synaptics?
Я установил драйвер 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
(выше), приложение Mouse Properties теряет фокус и не работает.
Есть ли другой способ включить / отключить трекпад с помощью C#?
(ОС: окно 32 бит).
1 ответ
На этом форуме есть тема, в которой, по-видимому, проблема была выяснена (это все 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 вместе с руководствами для разработчиков.