今天领导突然说项目需要调用外部键盘很急,然后我匆匆忙忙的写了这个功能,遇到很多蛋疼的地方,记录下来!
第一步:
管理员模式打开unity:
我们需要使用管理员模式打开unity,不然osk.exe是电脑内置的程序,不使用管理员是无法调取的!
第二步:
调取代码:
Process[] process;
process = Process.GetProcesses();
foreach (var p in process)
{
if (p.ProcessName == "osk")
{
if (!p.HasExited)
{
return;
}
}
}
System.Diagnostics.Process pro = System.Diagnostics.Process.Start("osk.exe");
这段代码的前面是判断当前的osk是否处于打开状态,如果是打开就不要再次打开了,否则开了很多虚拟键盘,有bug,后面则是打开osk.exe
第三步:
关闭虚拟键盘:
Process[] process;
process = Process.GetProcesses();
foreach (var p in process)
{
if (p.ProcessName == "osk")
{
if (!p.HasExited)
{
p.Kill();
}
return;
}
}
遍历进程列表,找到osk的进程,然后关闭Kill
第四步:
运行:
点击项目图标,以管理员模式运行