zoukankan      html  css  js  c++  java
  • c# winform调用osk系统自带软键盘

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    using System.Windows.Forms;
    using NLog;
    
    
    namespace Utils.common
    {
        class ScreenKeyboard
        {
            private static ILogger logger = NLog.LogManager.GetCurrentClassLogger();
            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 IntPtr ptr = new IntPtr();
    
            public static void ShowScreenKeyboard()
            {
                try {
                    //判断软键盘是否进程是否已经存在,如果不存在进行调用
                    Process[] pro = Process.GetProcessesByName("osk");
                    bool isWow64FsRedirectionDisabled = Wow64DisableWow64FsRedirection(ref ptr);
                   
                    //键盘如果已经打开则重新打开,防止最小化无法显示
                    if (pro != null && pro.Length > 0)
                    {
                        Process kbpr = pro[0];
                        kbpr.Kill();
                        if (isWow64FsRedirectionDisabled)
                        {
                            Process.Start(@"C:WINDOWSsystem32osk.exe");
                            Wow64RevertWow64FsRedirection(ptr);
                        }
                        return;
                    }
                    if (isWow64FsRedirectionDisabled)
                    {
                        Process.Start(@"C:WINDOWSsystem32osk.exe");
                        Wow64RevertWow64FsRedirection(ptr);
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                }
            }
            
        }
    }
    

      

  • 相关阅读:
    《P3953 [NOIP2017 提高组] 逛公园》
    《P4180 [BJWC2010]严格次小生成树》
    《济南icpc补题》
    《levil的因子和》
    《洛谷P2704 [NOI2001]炮兵阵地》
    《Codeforces Round #689 (Div. 2, based on Zed Code Competition)》
    《2174: Leapin' Lizards》
    《3820: Revenge of Fibonacci 》
    马拉车求最长回文子串
    二分训练
  • 原文地址:https://www.cnblogs.com/webttt/p/15470511.html
Copyright © 2011-2022 走看看