12345678910111213141516171819202122232425262728293031323334353637383940 |
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Runtime.InteropServices;
- namespace Team.Utility
- {
- public class StartKeyBoard
- {
- public static bool isShowNumBoard = false;
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);
- public static void StartKeyBoardFun()
- {
- string path = "C:/Program Files/Common Files/microsoft shared/ink/TabTip.exe";
- if (File.Exists(path))
- {
- _ = Process.Start(path);
- }
- else
- {
- //判断软键盘是否进程是否已经存在,如果不存在进行调用
- Process[] pro = Process.GetProcessesByName("osk");
- //说明已经存在,不再进行调用
- if (pro != null && pro.Length > 0)
- return;
- IntPtr ptr = new();
- bool isWow64FsRedirectionDisabled = Wow64DisableWow64FsRedirection(ref ptr);
- if (isWow64FsRedirectionDisabled)
- {
- Process.Start(@"C:\WINDOWS\system32\osk.exe");
- bool isWow64FsRedirectionReverted = Wow64RevertWow64FsRedirection(ptr);
- }
- }
- }
- }
- }
|