首页 > 其他分享 >通过注册表方式启动和关闭手写输入法(方法适合各种应用)

通过注册表方式启动和关闭手写输入法(方法适合各种应用)

时间:2023-07-31 17:46:50浏览次数:34  
标签:协议 HKEY 手写输入 CLASSES Handinput 关闭 注册表 ROOT

求:window系统下,点击输入窗口时,需要自动弹出手写输入法。点击除输入窗口外位置时,需要关闭手写输入法。

实现:

一、安装手写输入法插件(我选用的是搜狗输入法)

这是个什么协议呢,从来没有见过啊,也只是一个a标签就可以调用起来。于是我们需要深入探讨下a标签的协议。

a标签协议解读
平时在做网页的a标签跳转的时候,遇到比较多的就是http或者https协议,更常用的也就是个ftp协议,那这些协议是如何来的呢?凭啥a标签就可以直接调用这些协议呢?
查阅相关资料得到如下结论:a标签的href属性值如果是以http开头的,那么浏览器会马上启动http解释器去解释

该网址,首先会在本地机器去找一个hosts文件, 如果在hosts文件上该域名没有对应的主机,那么浏览器就去到对应的dns服务器去寻找该域名对应的主机号。如果找到了对应的主机,那么该请求就会发给对应的主机。
如果a标签的href属性值没有以任何协议开头,那么浏览就会启动file协议解释器去解释该资源路径。
如果a标签的href属性值并不是以http开始,而且其他 的一些协议,那么这时候浏览器就回去到我们本地的注册表中去查找是否有处理这种协议 的应用程序,如果有,那么马上启动该应用程序处理该协议。
其中比较关键的就是第三点,其实第三点也包含了前面两点。
注册列表查看协议,打开注册列表,Win+R 输入 regedit

 

第一个注册节点下的列表的作用是:

HKEY_CLASSES_ROOT是应用程序运行时必需的信息
HKEY_CLASSES_ROOT控制键包括了所有文件扩展和所有和执行文件相关的文件。它同样也决定了当一个文件被双击时起反应的相关应用程序。
HKEY_CLASSES_ROOT被用作程序员在安装软件时方便的发送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序员在运行他们的启动程序时不需要担忧实际的位置,相反的,他们只需要在HKEY_CLASSES_ROOT中加入数据就可以了。

https://blog.51cto.com/u_10879170/4968702

二、创建一个添加注册表文件:hinput.reg。手写注册协议,然后编辑如下内容

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Handinput]
@="URL:Handinput Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Handinput\DefaultIcon]
@="C:\\Program Files (x86)\\SogouInput\\Components\\HandInput\\1.1.0.2082\\handinput.exe"
[HKEY_CLASSES_ROOT\Handinput\shell]
[HKEY_CLASSES_ROOT\Handinput\shell\open]
[HKEY_CLASSES_ROOT\Handinput\shell\open\command]
@="\"C:\\Program Files (x86)\\SogouInput\\Components\\HandInput\\1.1.0.2082\\handinput.exe\" \"%1\""

txt后缀改为reg,并运行,该内容主要功能就是把插件写到注册表。

说明:

注册名称:Handinput

安装路径:C:\\Program Files (x86)\\SogouInput\\Components\\HandInput\\1.1.0.2082\\handinput.exe

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <script type="text/javascript"  >
        function loadIme() {
            var e = document.createElement('script');
            e.setAttribute('src', ' http://web.pinyin.sogou.com/web_ime/init.js');
            document.body.appendChild(e);
        }
    function sogo() //打开手写输入法
        {
            window.location.href="Handinput://test"
        }
        function close() //关闭手写输入法

        { 
           let cmd=new ActiveXObject("WScript.Shell");
           cmd.run("taskkill /f /t /im handinput.exe",0);
        }

    </script>
    <style type="text/css">
        #TextArea1
        {
            height: 199px;
            width: 239px;
        }
    </style>
</head>
<body οnlοad="loadIme()" >
    <textarea id="TextArea1">fdsfsd</textarea>
    <input type="button" value="关闭搜狗输入法" οnclick="loadIme();this.value= this.value =='关闭搜狗输入法'?'开启搜狗输入法':'关闭搜狗输入法';" />
    <input type="text" id="msg" οnfοcus="sogo()" />
    <a href="handinput://">dakai</a>
    <input type="button" value="Send" οnclick="close()"  />
</body>
</html>    
View Code

 

原文链接:https://blog.csdn.net/xiaoluozqin1/article/details/123702679

标签:协议,HKEY,手写输入,CLASSES,Handinput,关闭,注册表,ROOT
From: https://www.cnblogs.com/love201314/p/17594020.html

相关文章

  • idea - 在setting 关闭 git Analyze code后 push 时自动开启 - 解决
    不要在setting里修改,需要在 这个齿轮中修改才生效 就这么奇怪 ......
  • 64bit系统下操作注册表的注意事项 ZZ
    前一篇注册表重定向64bit系统下操作注册表的注意事项 (2010-03-1917:50:54)  1、注册表位置       64bit系统(WindowsServer2008R2只有64bit系统)的注册表分32 位注册表项和64位注册表项两部分。       在64bit系统下,通过regedit中查看到指定路径下的注册......
  • 小米/红米关闭VoLTE图标(信号旁的HD),以K50为例
    原文:https://zhuanlan.zhihu.com/p/508684071  小米/红米关闭VoLTE图标(信号旁的HD),以K50为例行也思君夜深知雪重,时闻折竹声 45人赞同了该文章新版小米系统中应运营商要求已经隐藏了VoLTE功能的开关,如果使用卡2做为上网卡,HD图标会出现在......
  • 01、spdlog源码阅读——registry注册表
    注册表具有唯一标识,用于管理多个日志//Copyright(c)2015-present,GabiMelman&spdlogcontributors.//DistributedundertheMITLicense(http://opensource.org/licenses/MIT)#pragmaonce//Loggersregistryofuniquename->loggerpointer//Anattempttocr......
  • 如何使用 WPF 用户控件关闭父窗口
    HowtocloseparentwindowsusingWPFUserControl如何使用WPF用户控件关闭父窗口【问题描述】假设有两个WPF窗口:window1和window2。window1有一个按钮,单击此按钮将打开window2。window2包含一个用户控件。此用户控件有一个用于关闭window2的按钮。怎样才能实现这个场景......
  • 【HMS Core】统一扫描连续扫码、闪光灯关闭问题
    ​ 【问题描述1】使用DefaultViewMode进行扫码,如何实现连续扫码 【解决方案】在默认扫码模式DefaultView中,功能是集成在SDK内部的,无法设置连续扫码模式等信息。可以使用CustomizedViewMode这种模式,它提供了相关的api可以设置是否连续扫码:通过setContinuouslyScan方法......
  • centos7关闭防火墙后只有22端口可以telnet的解决方法
    1、问题描述防火墙已经关闭22端口可以telnet其他端口无法telnet2、解决方法注意:下列命令要用root账号/权限执行2.1、开启防火墙systemctlstartfirewalld2.2、添加要开放的端口该命令以8081端口为示例firewall-cmd--add-port=8081/tcp2.3、重新加载防......
  • linux终止进程案例:踢掉非法登录用户 | 关闭sshd | 杀死终端
    摘要目的:举例linux杀死进程的使用一、踢掉某个非法登录用户要求:假设tom通过ssh非法登录了,需要踢掉这个用户1.查找tom对应的sshd下面两个都可以ps-ef|grepsshdps-aux|grepsshd可以看到进程号是19342.踢掉tomkill1934//tom的sshd的进程号二、终止远程登......
  • linux防火墙:基本介绍 | 防火墙开启关闭 | 防火墙端口设置
    摘要介绍linux防火墙一、linux防火墙防火墙的基本原理,就是一堵墙,可以设置开启的端口和关闭的端口,但实际上比这复杂按我的理解,这个和计算机网络中的防火墙不是一回事计网当中的防火墙是指在局域网与外界相连的地方设置防火墙路由器,里面设置一套规则来抵制分组信息此处的防......
  • java session 关闭页面 失效
    JavaSession关闭页面失效1.流程图以下是实现JavaSession关闭页面失效的流程图:![流程图](2.详细步骤按照上面的流程图,我们需要完成以下步骤来实现JavaSession关闭页面失效。步骤动作1.设置Session失效时间2.在页面中获取Session对象3.判断S......