我正在为Windows 10 LTSB 2016构建WPF应用程序。只有一个输入设备-触摸屏。我的大多数文本框都有自己的数字键盘(具有额外的功能),但是在某些情况下我想使用平板电脑模式键盘。有两种方法:
我更接近第一种方法,因为它不需要重写现有代码。我已经在尝试修改注册表,然后在每次与文本框的交互开始时广播SendNotifyMessage,但似乎每次都无法正常工作。
public static void DisableAutoKeyboard()
{
Process proc = new Process();
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "reg.exe";
proc.StartInfo.Arguments = @"add HKEY_CURRENT_USER\Software\Microsoft\TabletTip\1.7 /t REG_DWORD /v EnableDesktopModeAutoInvoke /d 0 /f";
proc.Start();
SendNotifyMessage((IntPtr)0xFFFF, 0x001A, (UIntPtr)0, (IntPtr)0);
}
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern bool SendNotifyMessage(IntPtr hWnd, uint Msg, UIntPtr wParam, IntPtr lParam);
EnableAutoKeyboard()的参数中带有“ / d 1”。
可以更轻松地完成吗?
注意:我不想使用osk.exe而不是Windows 10 TabletTip