需求如下,插入传感器,为usb接口,其输出数据为字符输入,就是你点开文本后,触发传感器,它会打出一串字符。
我这里解析字符,根据不同的字符展示不同的内容。
目前为止,需求很简单,没太大难点。
但是,电脑的输入法如果为中文,就有很大问题,他会出现乱码,我这边就无法解析。
于是找到了如下解决方案:
using System;
using System.Runtime.InteropServices;
public class InputLanguageManager
{
[DllImport("user32.dll")]
private static extern IntPtr LoadKeyboardLayout(string pwszKLID, uint Flags);
[DllImport("user32.dll")]
private static extern bool UnloadKeyboardLayout(IntPtr hkl);
[DllImport("user32.dll")]
private static extern IntPtr ActivateKeyboardLayout(IntPtr hkl, uint Flags);
private const uint KLF_ACTIVATE = 1;
// 键盘布局的字符串ID,这里是英文(美国)键盘
private const string EnglishInputID = "00000409";
public static void SwitchToEnglishInput()
{
IntPtr layout = LoadKeyboardLayout(EnglishInputID, KLF_ACTIVATE);
ActivateKeyboardLayout(layout, KLF_ACTIVATE);
}
}
在开始运行时,调用该函数即可