天天看点

.net调用系统软键盘(兼容win7及win10)

原文:

.net调用系统软键盘(兼容win7及win10)

没有什么技术说明,也是查询出来的,在此做记录

public class StartKeyBoard

    {

        public static bool isShowNumBoard = false;

        [DllImport("kernel32.dll", SetLastError = true)]

        public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);

        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 p = Process.Start(path);

            }

            else

                //判断软键盘是否进程是否已经存在,如果不存在进行调用

                Process[] pro = Process.GetProcessesByName("osk");

                //说明已经存在,不再进行调用

                if (pro != null && pro.Length > 0)

                    return;

                IntPtr ptr = new IntPtr();

                bool isWow64FsRedirectionDisabled = Wow64DisableWow64FsRedirection(ref ptr);

                if (isWow64FsRedirectionDisabled)

                {

                    Process.Start(@"C:\WINDOWS\system32\osk.exe");

                    bool isWow64FsRedirectionReverted = Wow64RevertWow64FsRedirection(ptr);

                }

        }

    }

继续阅读