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);
                }
            }
            
        }
    }
    

      

  • 相关阅读:
    SQL over关键字(转载)
    XSLT学习(转载)
    js动态添加options(转载)
    ASP.NET中如何防范SQL注入式攻击(转载)
    Wordpress SEO robots
    RegistryKey类的学习(转载)
    C# Lambda Expressions 简介(转载)
    ‍ps技巧184条(转载)
    2010年年终总结
    JavaScript(文件对象/锚点对象/链接对象)(转载)
  • 原文地址:https://www.cnblogs.com/webttt/p/15470511.html
Copyright © 2011-2022 走看看