精华内容
下载资源
问答
  • 关闭windows虚拟键盘
    千次阅读
    2013-12-04 09:01:46

    一、思路

    实现虚拟键盘需要解决三个问题

    1、让你的虚拟键盘置顶

    2、调用windows的api实现按键输入。

    2、让窗口焦点始终保持在被输入的窗口中。


    二、实现方式

    第一个问题

    调用QWidget的函数让窗口置顶setWindowFlags(Qt::WindowStaysOnTopHint);

    第二问题

    实现按键输入

    keybd_event(key,0,0,0); //按键按下

    keybd_event(key,0,KEYEVENTF_KEYUP,0); //按键弹起

    key是键盘按键对应的十六进制值,可查看虚拟键盘表

    http://blog.csdn.net/linwenbin1990/article/details/17112017

    第三个问题

    查看 http://blog.csdn.net/linwenbin1990/article/details/17098923


    更多相关内容
  • c#调用windows虚拟键盘

    万次阅读 2017-11-29 17:51:16
    调用windows自带的tabtip.exe来调用虚拟键盘。我们在textBox获取焦点时候进行调用虚拟键盘 private void textBox_GotFocus(object sender, RoutedEventArgs e) { try { dynamic file = "C:\\Program Files\\...

    调用windows自带的tabtip.exe来调用虚拟键盘。

    我们在textBox获取焦点时候进行调用虚拟键盘

     private void textBox_GotFocus(object sender, RoutedEventArgs e)
    {
    try
    {
        dynamic file = "C:\\Program Files\\Common Files\\microsoft  shared\\ink\\TabTip.exe";
        if (!System.IO.File.Exists(file))
            return;
        Process.Start(file);
    }
    catch (Exception)
    {
    }     
    
    
    }

    失去焦点进行关闭虚拟键盘

    private const Int32 WM_SYSCOMMAND = 274;
    private const UInt32 SC_CLOSE = 61536;
    [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    private static extern bool PostMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
    [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    private void textBox_LostFocus(object sender, RoutedEventArgs e)
    {
        IntPtr TouchhWnd = new IntPtr(0);
        TouchhWnd = FindWindow("IPTip_Main_Window", null);
        if (TouchhWnd == IntPtr.Zero)
            return;
        PostMessage(TouchhWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
    }

    本文标题:c#调用windows虚拟键盘
    文章作者:huangruifeng
    发布时间:2017年11月24日 - 15:11
    最后更新:2017年11月24日 - 15:11
    原始链接
    许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

    展开全文
  • c# 弹出虚拟键盘关闭虚拟键盘(适用win10、win7) using System; using System.Diagnostics; using System.Management; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using ...

    转载自 https://www.cnblogs.com/lizhijian/p/12725782.html

    c# 弹出虚拟键盘关闭虚拟键盘(适用win10、win7)

    using System;
    using System.Diagnostics;
    using System.Management;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    using System.Threading;
    
    namespace test
    {
        /// <summary>
        ///     虚拟键盘管理类
        /// </summary>
        public class VirtualKeyboardHelper
        {
            private const uint WS_VISIBLE = 0x10000000;
            private const int GWL_STYLE = -16;
            private const int WM_SYSCOMMAND = 0x0112;
            private const uint SC_CLOSE = 0xF060;
            private const int WS_DISABLED = 0x08000000;
            private const int DWMWA_CLOAKED = 14;
    
            private const string ApplicationFrameHostClassName = "ApplicationFrameWindow";
            private const string CoreWindowClassName = "Windows.UI.Core.CoreWindow";
    
            private const string TextInputApplicationCaption = "Microsoft Text Input Application";
    
    
            /// <summary>
            ///     win10 虚拟键盘路径
            /// </summary>
            private const string Win10TabTipPath = @"C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe";
    
            /// <summary>
            ///     win7 虚拟键盘路径
            /// </summary>
            private const string Win7OskPath = @"C:\WINDOWS\system32\osk.exe";
    
            /// <summary>
            ///     虚拟键盘 窗口名称
            /// </summary>
            private const string TabTipWindowClassName = "IPTIP_Main_Window";
    
            [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    
            [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
            private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass,
                string lpszWindow);
    
    
            [DllImport("user32.dll", EntryPoint = "GetWindowLong")]
            private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
    
            [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
            private static extern bool PostMessage(IntPtr hWnd, int msg, uint wParam, uint lParam);
    
    
            [DllImport("kernel32.dll", SetLastError = true)]
            private static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);
    
            [DllImport("kernel32.dll", SetLastError = true)]
            private static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);
    
    
            [DllImport("user32.dll", EntryPoint = "GetDesktopWindow", SetLastError = false)]
            private static extern IntPtr GetDesktopWindow();
    
            [DllImport("dwmapi.dll", EntryPoint = "DwmGetWindowAttribute")]
            private static extern int DwmGetWindowAttribute(IntPtr intPtr, int dwAttribute, out int pvAttribute,
                uint cbAttribute);
    
    
    
            /// <summary>
            /// 判断键盘是否连接
            /// </summary>
            /// <returns></returns>
            public static bool IsKeyboardAttached()
            {
                try
                {
                    ManagementObjectSearcher searcher =
                        new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Keyboard");
    
                    int devCount = 0;
    
                    foreach (ManagementObject obj in searcher.Get())
                    {
                        if (obj["Status"].ToString().Contains("OK")) // if device is ready
                        {
                            //surface测试时发现,HID设备,不是键盘,比较特殊
                            if (!obj["Description"].ToString().Contains("HID Keyboard Device"))
                            {
                                devCount++;
                            }
                        }
                    }
    
                    return devCount > 0;
                }
                catch (Exception)
                {
                    return false;
                }
            }
    
            /// <summary>
            ///     打开虚拟键盘,目前支持win7 64位,win10 64位,exe编译为x86。
            /// </summary>
            public static void ShowVirtualKeyboard()
            {
                //+------------------------------------------------------------------------------+
                //|                    |   PlatformID    |   Major version   |   Minor version   |
                //+------------------------------------------------------------------------------+
                //| Windows 95         |  Win32Windows   |         4         |          0        |
                //| Windows 98         |  Win32Windows   |         4         |         10        |
                //| Windows Me         |  Win32Windows   |         4         |         90        |
                //| Windows NT 4.0     |  Win32NT        |         4         |          0        |
                //| Windows 2000       |  Win32NT        |         5         |          0        |
                //| Windows XP         |  Win32NT        |         5         |          1        |
                //| Windows 2003       |  Win32NT        |         5         |          2        |
                //| Windows Vista      |  Win32NT        |         6         |          0        |
                //| Windows 2008       |  Win32NT        |         6         |          0        |
                //| Windows 7          |  Win32NT        |         6         |          1        |
                //| Windows 2008 R2    |  Win32NT        |         6         |          1        |
                //| Windows 8          |  Win32NT        |         6         |          2        |
                //| Windows 8.1        |  Win32NT        |         6         |          3        |
                //+------------------------------------------------------------------------------+
                //| Windows 10         |  Win32NT        |        10         |          0        |
    
                try
                {
                    var isWin7 = Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor == 1;
                    var isWin8OrWin10 =
                        Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor == 2;
                    var isWin10 = Environment.OSVersion.Version.Major == 10 && Environment.OSVersion.Version.Minor == 0;
                    if (isWin7)
                    {
                        //win7
                        ShowWin7VirtualKeyboard();
                    }
                    else if (isWin8OrWin10 || isWin10)
                    {
                        //win10 
                        ShowWin10VirtualKeyboard();
                    }
                }
                catch (Exception)
                {
                    // ignored
                }
            }
            /// <summary>
            /// 关闭虚拟键盘
            /// </summary>
            public void CloseVirtualKeyboard()
            {
                var touchhWnd = FindWindow("IPTip_Main_Window", null);
                if (touchhWnd == IntPtr.Zero)
                {
                    return;
                }
    
                PostMessage(touchhWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
            }
            private static void ShowWin7VirtualKeyboard()
            {
                if (!Environment.Is64BitProcess && Environment.Is64BitOperatingSystem)
                {
                    //32位程序 运行在64位系统上,打开32位程序,需要禁用文件重定向
                    var ptr = new IntPtr();
                    var isWow64FsRedirectionDisabled = Wow64DisableWow64FsRedirection(ref ptr);
    
                    Process.Start(Win7OskPath);
    
                    if (isWow64FsRedirectionDisabled)
                    {
                        Wow64RevertWow64FsRedirection(ptr);
                    }
                }
                else if (Environment.Is64BitProcess && Environment.Is64BitOperatingSystem)
                {
                    Process.Start(Win7OskPath);
                }
            }
    
            private static void ShowWin10VirtualKeyboard()
            {
                if (!IsTabTipProcessPresent())
                {
                    Process.Start(Win10TabTipPath);
                    while (!IsValidHandle(FindWindow("IPTIP_Main_Window", "")))
                    {
                        Thread.Sleep(100);
                    }
                }
    
                //判断可见性
                if (!IsWin10OnScreenKeyboardVisible())
                {
                    ShowByCom();
                }
            }
    
            private static bool IsWin10OnScreenKeyboardVisible()
            {
                var handle = FindWindow(TabTipWindowClassName, "");
                if (!IsValidHandle(handle))
                {
                    return false;
                }
    
                var isVisible = IsWindowVisibleByHandle(handle);
                if (isVisible.HasValue)
                {
                    return isVisible.Value;
                }
    
                // hard way
                var textInputHandle = FindTextInputWindow();
                return IsValidHandle(textInputHandle);
            }
    
            private static IntPtr FindTextInputWindow()
            {
                var lastProbed = IntPtr.Zero;
                do
                {
                    lastProbed = FindWindowEx(IntPtr.Zero, lastProbed, ApplicationFrameHostClassName, null);
                    if (IsValidHandle(lastProbed))
                    {
                        var textInput = FindWindowEx(lastProbed, IntPtr.Zero, CoreWindowClassName,
                            TextInputApplicationCaption);
                        return textInput;
                    }
                } while (IsValidHandle(lastProbed));
    
                return IntPtr.Zero;
            }
    
    
    
            private static bool? IsWindowVisibleByHandle(IntPtr handle)
            {
                var style = GetWindowLong(handle, GWL_STYLE);
                //Console.WriteLine( "Style {0:X8}", style );
    
                // if is disabled - not visible
                if ((style & WS_DISABLED) != 0)
                {
                    return false;
                }
    
                // if has visible style - visible :)
                if ((style & WS_VISIBLE) != 0)
                {
                    return true;
                }
    
                // DWM Window can be cloaked
                // see https://social.msdn.microsoft.com/Forums/vstudio/en-US/f8341376-6015-4796-8273-31e0be91da62/difference-between-actually-visible-and-not-visiblewhich-are-there-but-we-cant-see-windows-of?forum=vcgeneral
                if (DwmGetWindowAttribute(handle, DWMWA_CLOAKED, out var cloaked, 4) == 0)
                {
                    if (cloaked != 0)
                    {
                        return false;
                    }
                }
    
                // undefined
                return null;
            }
    
            [MethodImpl(MethodImplOptions.AggressiveInlining)]
            private static bool IsValidHandle(IntPtr handle)
            {
                // if (?:) will be eliminated by jit
                return IntPtr.Size == 4
                    ? handle.ToInt32() > 0
                    : handle.ToInt64() > 0;
            }
    
            private static bool IsTabTipProcessPresent()
            {
                var handle = FindWindow(TabTipWindowClassName, "");
                return IntPtr.Size == 4
                    ? handle.ToInt32() > 0
                    : handle.ToInt64() > 0;
            }
    
            private static void ShowByCom()
            {
                ITipInvocation instance = null;
                try
                {
                    instance = (ITipInvocation)Activator.CreateInstance(ComTypes.TipInvocationType);
                    instance.Toggle(GetDesktopWindow());
                }
                finally
                {
                    if (!ReferenceEquals(instance, null))
                    {
                        Marshal.ReleaseComObject(instance);
                    }
                }
            }
        }
    
        [ComImport]
        [Guid("37c994e7-432b-4834-a2f7-dce1f13b834b")]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        internal interface ITipInvocation
        {
            void Toggle(IntPtr hwnd);
        }
    
        internal static class ComTypes
        {
            internal static readonly Guid ImmersiveShellBrokerGuid;
            internal static readonly Type ImmersiveShellBrokerType;
    
            internal static readonly Guid TipInvocationGuid;
            internal static readonly Type TipInvocationType;
    
            static ComTypes()
            {
                TipInvocationGuid = Guid.Parse("4ce576fa-83dc-4F88-951c-9d0782b4e376");
                TipInvocationType = Type.GetTypeFromCLSID(TipInvocationGuid);
    
                ImmersiveShellBrokerGuid = new Guid("228826af-02e1-4226-a9e0-99a855e455a6");
                ImmersiveShellBrokerType = Type.GetTypeFromCLSID(ImmersiveShellBrokerGuid);
            }
        }
    }
    

    转载自 https://www.cnblogs.com/lizhijian/p/12725782.html

    学习记录使用
    欢迎进qq群交流:704028989

    展开全文
  • 电脑现如今已经成为了人们生活中不可缺少的一件电子产品之一,我们的生活中时刻可见电脑的身影,当然键盘作为电脑的专属配件也就经常出现在我们的视线中,但是随着科技的发展,虚拟键盘已经慢慢被人们接受,脱离了...

    随着社会的发展,时代的进步,人们的生活越来越丰富多彩。越来越多的电子产品的出现更是为人们的生活增添了无限精彩。电脑现如今已经成为了人们生活中不可缺少的一件电子产品之一,我们的生活中时刻可见电脑的身影,当然键盘作为电脑的专属配件也就经常出现在我们的视线中,但是随着科技的发展,虚拟键盘已经慢慢被人们接受,脱离了实体键盘的束缚,电脑虚拟键盘使人们对电脑的操作更加快捷。下面就一起来简单了解一下电脑虚拟键盘吧。9679151_20160810_6664a5452d049219e527ZJMCrd2p0zoi_thumb.jpg

    方法一:

    首先,在键盘上按住Windows键

    再在键盘上按住R键

    然后会出现运行,在“运行”里输入"osk",最后点击“确定”

    软键盘就出现在桌面了,现在就可以鼠标点击软键盘打字了

    不想再用软键盘了,点击软键盘右上角的"X",就可以关闭了

    方法二:

    1、WIN+R调出运行,输入OSK回车即可调出,如图:

    2、也可以通过以下路径打开:开始-所有程序-附件-辅助工具-屏幕键盘。

    3、有些输入法内置有虚拟键盘,比如搜狗拼音,右键点击输入法工具栏,选择“软键盘”-PC键盘即可打开,也可以使用快捷键“CTRL+SHIFT+K”打开。9679151_20160810_b04c8431ec497e469e81SHzsCiqWtYCM_thumb.jpg

    方法三:

    1、将鼠标移至任务栏处,单击鼠标右键,单击“属性”。

    2、这时候会弹出对话框,对话框中有三栏,分别是“任务栏”“跳转列表”“工具栏”。

    3、单击“工具栏”,这时候会出现四个选项,其中便有“触摸键盘”,在它之前的方框内打对勾。

    4、然后单击“应用”,这时候在任务栏上就会出现键盘的标志。

    5、单击图标,这时候键盘就会出现在屏幕上了。

    方法四:

    步骤1、在 电脑桌 面,单击【开始】,点击【运行】。或者直接按下快捷键WIN+R打开【运行】。

    步骤2、运行中输入 osk 点击【确定】。

    步骤3、就会调出windows系统自带的软键盘。这个方法对于win7、xp、win8、win10都适用。

    方法五:

    步骤1、在用第三方输入法输入文字的时候,在输入法的面板上右击。

    步骤2、选择【软键盘】。然后会弹出众多的软键盘选项,有pc软键盘、常用符号等等多种软键盘。

    步骤3、选择pc软键盘。

    步骤4、然后就弹出了经典的软键盘,可以用鼠标代替键盘输入了。9679151_20160810_dceff2f8cad2f21eb21cC6wFjh1FYNc1_thumb.jpg

    对于电脑使用者来说,键盘绝对是必不可少的电脑配件,而从本文中可以看出,随着科技的进步,我们的日常生活也就变得更加的快捷和丰富,就像本文中的虚拟键盘一样,当你仔细阅读完本文之后,相信大家一定会自己操作虚拟键盘了吧。当学会了正确的使用电脑虚拟键盘的方法以后,自然是在电脑的使用过程中掌握了一项十分使用的技能啊。好了,关于电脑虚拟键盘的相关问题就简单介绍到这里了,希望对大家会有所帮助。

    展开全文
  • 这个方式打开有个坑:打开虚拟键盘后,没法直接切换输入法,必须先输入一个字母才可以切换。 ----------------------------分割线------------------------- using System; using System.Diagnostics; using System....
  • C#虚拟键盘的实现

    2022-08-25 10:45:43
    C#虚拟键盘的实现
  • 由于公司的项目软件一直都在Windows的平板电脑上运行,所以当用户点击了输入框之类的控件时,就要在代码中主动让Windows虚拟键盘启动并显示出来。这个功能分了几步的开发过程,现在来总结一下。 项目使用的界面库...
  • 当然,键盘经常作为计算机的专用配件出现在我们的视野中,但是随着计算机技术的发展,虚拟键盘已逐渐为人们所接受,并摆脱了物理键盘的束缚。计算机虚拟键盘使人们在计算机上的操作更快。让我们简要看一下计算机虚拟...
  • javaFX 调用虚拟键盘

    2020-04-17 14:10:09
    今天工作时遇到了一个问题,客户的电脑是触屏的,所以要求在输入时调起虚拟键盘,网上查了很久资料,在此先记录一下. 我用的开发工具是eclipse,其实操作起来很简单,所以可能没什么人问吧,右键项目Properties,找到...
  • Centos禁止屏幕虚拟键盘弹出

    千次阅读 2020-01-11 19:54:55
    原本触摸屏下虚拟键盘的作用是便于输入,可以在不用外接键盘的情况下,直接用屏幕键盘作为输入,可是当想把屏幕键盘关掉却发现并不是那么简单。 关闭屏幕键盘的主要原因是运行用户程序时,在触屏界面下操作程序界面...
  • 环境:raspbian-stretch(2018-06-27)树莓派:3代B型官网安装地址:http://ozzmaker.com/virtual-keyboard-for-the-raspberry-pi/ 回家发现家里的键盘有些按键已经失灵了,没办法,和windows一样,直接安装个虚拟键,...
  • ·触控、虚拟键盘的操作体验谈到操作体验,它与系统UI设计紧密相连,戴尔Streak采用了我们熟悉的Android操作系统,该系统对触控操作有较好的优化,特别是一些细节之处,譬如菜单图标的操作方面,大大避免了用户误点...
  • 选择键和免费的虚拟键盘发送到一个文字处理器,电子邮件,网页或其他Windows应用程序可能正在使用。键盘可以移动屏幕上的任何地方,可以是任意大小。 免费的虚拟键盘可用于残疾,防止他或她从一个物理电脑键盘打字...
  • } //关闭键盘 public static void CloseKeyBoard() { vk.HideTouchKeyboard(); } } 3、完成功能:使用InputFiled,点击焦点时弹出,失去焦点时关闭 你需要将下面脚本挂到InputField上 InputFiledSelect .cs using ...
  • 如何调用windows系统自带虚拟键盘Tabtip.exe
  • 触摸屏专用虚拟键盘下载

    千次阅读 2020-12-19 11:51:13
    虚拟键盘干什么用?现在很多电脑都变成了类似笔记本的平板一体机,电脑越来越像手机,但是很多时候您或许以为没有键盘按键的电脑越来越不像电脑,更多的是像手机多一点。触摸屏在输入时还是不方便的界面预览图:虚拟...
  • Windows10键盘快捷键大全

    千次阅读 2022-05-09 19:43:05
    Windows 10上,键盘快捷键提供了一种快速浏览和操作体验功能的方法,只需按下一个或多个键,如果使用鼠标将需要几次点击和更多时间。 尽管记住所有可用的键盘快捷键可能会让人不知所措,但重要的是要考虑到大多数...
  • 转载自 ... } } catch (Exception) { // ignored } } /// /// 关闭虚拟键盘 /// public void CloseVirtualKeyboard() { var touchhWnd = FindWindow("IPTip_Main_Window", null); ...
  • 打开软键盘Runtime.getRuntime().exec("osk"); 关闭键盘Runtime.getRuntime().exec("taskkill /F /IM osk.exe");
  • 关闭键盘"; if (!kbpr.HasExited) //若软键盘不存在 { kbpr = System.Diagnostics.Process.Start("osk.exe"); //调用打开软键盘 } Open = false; //按键显示“关闭键盘” } else {...
  • windows 键盘消息

    2019-12-22 17:28:39
    Windows用八种不同的消息来传递不同的键盘事件。这好像太多了,但是(就像我们所看到的一样)程序可以忽略其中至少一半的消息而不会有任何问题。并且,在大多数情况下,这些消息中包含的键盘信息会多于程序所需要的...
  • 首先之前的工作都是为了想验证虚拟键盘的使用,才有了之前编译x11 、arm等qt的步骤。 在到这之前的构建环境,我说认真的,真的烦的要死,每次构建用的时间又多,配置完了编译会出一大堆error,加上公司自带的ubuntu...
  • Pyqt/PySide实现点击输入框自动弹出触控键盘
  • 最近需要在win XP系统的工控机上进行程序的开发,工控机是电阻式触摸屏,需要在上面使用触摸键盘,使工控...看了一些开发的帖子,自己开发虚拟键盘的关键在于:不要使用类似按钮这样控件去开发键盘,因为这些控件会使输
  • 易语言winio模拟按键模块源码,winio模拟按键模块,模拟按键wio,开启winio,关闭winio,置鼠标动作,置键盘按键,等待空缓冲,取扫描码,InstallWinIoDriver,RemoveWinIoDriver,openwinio,closewinio,读端口,写端口,开始内存...
  • “输入框被虚拟键盘遮挡” 的问题,不少同学都遇到过。尤其是对于页面尺寸固定,且输入框只能显示在下半部分,甚至边缘位置的情况,遮挡现象会成为阻挡用户获得确定性或安全感的一大障碍。 如果你想要简化问题处理,...
  • 虚拟键盘

    2019-04-12 23:09:00
    造冰箱的大熊猫,本文在Microsoft Windows XP和Ubuntu 16.04上验证通过@cnblogs 2019/4/12 文中图片可通过点击鼠标右键查看大图 今天在笔记本上运行某个程序时,发现键盘方向键在该软件中处于“Scroll Lock”...
  • Windows下QT使用VirtualKeyboard键盘

    千次阅读 2021-03-22 08:48:07
    之前虚拟键盘的问题在Linux下编译使用,老是发现模块没有找到, 反正都是学习下使用, 所以还是找了下Windows下的QT的版本如何使用, 直接上菜~ 在main.cpp中设置: qputenv("QT_IM_MODULE", QByteArray(...
  •  逍遥安卓模拟器安装环境介绍 以下为逍遥安卓模拟器测试在 Windows 系统下的最低系统要求及建议配置。因逍遥安卓模拟器版本更新,模拟器最低系统要求可能进行改变。 操作系统环境要求,需要满足以下操作系统之一...
  • 同时也是一款电脑虚拟键盘模拟器,该软件内有多个键盘模型,除了标准键盘以外,还有数字小键盘、彩色键盘、弧形、人体工程学等等,有很多种,不仅可以代替物理键盘打字,还能玩游戏,不仅如此,你还能定义手势功能,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,382
精华内容 12,152
关键字:

关闭windows虚拟键盘