分类: Windows

Microsoft Windows是美国微软公司以图形用户界面为基础研发的 ,主要运用于计算机、等设备。共有普通版本、服务器版本、手机版本等)、嵌入式版本(Windows CE等)等子系列,是全球应用最广泛的操作系统之一。

  • 使用bat启动python脚本,达到双击运行的效果

    chcp 65001
    title 数据库备份 
    python 运行.py
    pause

    注意,第二行,标题后面有一个空格或者换行才行

    其他

    title 数据库 空格

    其他

     

    bat启动python创建的虚拟环境

    chcp 65001
    @echo off
    title 图片格式转换
    
    :: 激活虚拟环境
    call .\myenv\Scripts\activate.bat
    
    :: 运行 Python 应用程序
    python 图片格式转换.py
    
    :: 暂停,等待用户按键后关闭窗口
    pause

     

  • findstr

    findstr 是一个在 Windows 命令提示符(cmd)中使用的命令行工具,用于在文件中搜索字符串。它支持正则表达式,这使得它在文本搜索方面非常灵活和强大。以下是一些 findstr 的常用用法:

    1. 基本搜索: 搜索包含特定字符串的行:
      cmd
      findstr "Hello" filename.txt
    2. 使用正则表达式: 使用正则表达式进行模式搜索:
      cmd
      findstr "regex_pattern" filename.txt
    3. 忽略大小写: 使用 /i 选项来执行不区分大小写的搜索:
      cmd
      findstr /i "HELLO" filename.txt
    4. 多字符串搜索: 同时搜索多个字符串:
      cmd
      findstr "string1" "string2" filename.txt
    5. 只打印包含匹配的行: 使用 /c: 选项后跟字符串,仅打印包含该字符串的行:
      cmd
      findstr /c:"Hello" filename.txt
    6. 排除特定字符串: 使用 /x 选项排除包含特定字符串的行:
      cmd
      findstr /c:"Hello" /x:"Goodbye" filename.txt
    7. 搜索多个文件: 搜索当前目录下所有 .txt 文件中的字符串:
      cmd
      findstr "Hello" *.txt
    8. 递归搜索子目录: 使用 /s 选项递归搜索子目录中的文件:
      cmd
      findstr /s "Hello" *.txt
    9. 打印行号: 使用 /n 选项打印包含匹配项的行的行号:
      cmd
      findstr /n "Hello" filename.txt
    10. 打印列号: 使用 /o 选项打印匹配项的字符偏移量(列号):
      cmd
      findstr /o "Hello" filename.txt
    11. 打印文件名: 使用 /p 选项只打印包含至少一个匹配项的文件名:
      cmd
      findstr /p "Hello" *.txt

    findstr 是一个非常有用的工具,特别是当您需要在命令行环境中快速搜索文本文件时。请注意,正则表达式的语法可能与其他工具或编程语言中的正则表达式略有不同,因此在使用时需要参考 findstr 的具体文档。

  • 同步时间-批处理

    @ECHO OFF
    ::网址:nat.ee
    ::批处理:荣耀&制作 QQ:1800619
    >NUL 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    IF '%errorlevel%' NEQ '0' (
    GOTO UACPrompt
    ) ELSE ( GOTO gotAdmin )
    :UACPrompt
    ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    EXIT /B
    :gotAdmin
    IF EXIST "%temp%\getadmin.vbs" ( DEL "%temp%\getadmin.vbs" )
    title nat.ee
    mode con: cols=32 lines=12
    color 17
    :menu
    CLS
    ECHO           NTP时间同步
    ECHO.
    SET Parameters=HKLM\SYSTEM\CurrentControlSet\services\W32Time\Parameters
    SET NtpClient=HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient
    ::删除服务配置信息
    SET "scte=sc triggerinfo w32time delete > NUL"
    ::创建服务默认配置
    SET "sctd=sc triggerinfo w32time start/domainjoin > NUL"
    ::创建服务配置:联网启动/不联网停止
    SET "sctn=sc triggerinfo w32time start/networkon stop/networkoff > NUL"
    ::设置服务模式:自动运行
    SET "scca=sc config W32Time start= auto > NUL"
    ::设置服务模式:手动运行
    SET "sccd=sc config W32Time start= demand > NUL"
    ::启动服务
    SET "sa=net start w32time 2>NUL"
    ::停止服务
    SET "so=net stop w32time 2>NUL"
    for /f "skip=1 tokens=3* delims=, " %%i in ('REG QUERY "%Parameters%" /v "NtpServer"') DO (SET address=%%i)
    for /f %%s in ('wmic service where "name='w32time'" get state^|findstr /c:"Stopped" /c:"Running" /c:"Paused"') DO (SET servicestatus=%%s)
    IF "%servicestatus%" == "Running" (ECHO Time状态:运行)
    IF "%servicestatus%" == "Stopped" (ECHO Time状态:停止)
    IF "%servicestatus%" == "Paused" (ECHO Time状态:暂停)
    ECHO NTP地址:%address%
    ECHO.
    ECHO 1.启动
    ECHO 2.重启
    ECHO 3.终止
    ECHO 4.设置
    ECHO 5.退出
    ECHO.
    choice /C:12345 /N /M "请输入你的选择 [1,2,3,4,5]":
    if errorlevel 5 EXIT
    if errorlevel 4 GOTO:config
    if errorlevel 3 GOTO:stop
    if errorlevel 2 GOTO:restart
    if errorlevel 1 GOTO:start
    ::启动
    :start
    CLS
    %scte%
    %sctn%
    %scca%
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "1" /f  > nul
    %sa%
    TIMEOUT 3 >NUL
    GOTO:menu
    
    ::重启
    :restart
    CLS
    %scte%
    %sctn%
    %scca%
    %so%
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "1" /f  > nul
    %sa%
    TIMEOUT 3 >NUL
    GOTO:menu
    
    ::终止
    :stop
    CLS
    %scte%
    %sctd%
    %sccd%
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "0" /f  > nul
    %so%
    TIMEOUT 3 >NUL
    GOTO:menu
    
    ::设置
    :config
    CLS
    ECHO 1.设置NTP服务器(域名/IP)地址
    ECHO 留空默认ntp1.aliyun.com
    ECHO 输入地址,按回车(Enter)
    ECHO.
    set /p NtpServer=地址:
    IF "%NtpServer%" == "" (
    ECHO 使用默认 ntp1.aliyun.com
    set NtpServer=ntp1.aliyun.com
    TIMEOUT 3 >NUL
    )
    CLS
    ECHO 2.设置时间同步更新间隔
    ECHO 留空默认3600秒(1小时)
    ECHO 输入(多少秒),按回车(Enter)
    ECHO.
    set /p SpecialPollInterval=数值(秒):
    IF "%SpecialPollInterval%" == "" (
    ECHO 使用默认3600秒
    set SpecialPollInterval=3600
    TIMEOUT 3 >NUL
    )
    Reg add "%Parameters%" /v "Type" /t REG_SZ /d "NTP" /f  > NUL
    Reg add "%Parameters%" /v "NtpServer" /t REG_SZ /d "%NtpServer%,0x1" /f  > NUL
    Reg add "%NtpClient%" /v "Enabled" /t REG_DWORD /d "1" /f  > nul
    Reg add "%NtpClient%" /v "CrossSiteSyncFlags" /t REG_DWORD /d "2" /f  > NUL
    Reg add "%NtpClient%" /v "EventLogFlags" /t REG_DWORD /d "0" /f  > NUL
    Reg add "%NtpClient%" /v "ResolvePeerBackoffMinutes" /t REG_DWORD /d "15" /f  > NUL
    Reg add "%NtpClient%" /v "ResolvePeerBackoffMaxTimes" /t REG_DWORD /d "7" /f  > NUL
    Reg add "%NtpClient%" /v "SpecialPollInterval" /t REG_DWORD /d "%SpecialPollInterval%" /f  > NUL
    CLS
    %scte%
    %sctn%
    %scca%
    %so%
    %sa%
    ECHO 完成。
    TIMEOUT 3 >NUL
    GOTO:menu
    EXIT

     

  • win7-批处理

    @ECHO OFF
    ::网址:nat.ee
    ::批处理:荣耀&制作 QQ:1800619
    >nul 2>&1 "%SYSTEMROOT%\system32\caCLS.exe" "%SYSTEMROOT%\system32\config\system"
    if '%errorlevel%' NEQ '0' (
    GOTO UACPrompt
    ) ELSE ( GOTO gotAdmin )
    :UACPrompt
    ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    ECHO UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
    :gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    title nat.ee
    mode con: cols=36 lines=8
    color 17
    SET "wall=HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules"
    SET "rdp=HKLM\SYSTEM\ControlSet001\Control\Terminal Server"
    :Menu
    CLS
    ECHO.
    ECHO 1.修改远程端口
    ECHO.
    ECHO 2.修改用户密码
    ECHO.
    ECHO 3.重启计算机
    ECHO.
    choice /C:123 /N /M "请输入你的选择 [1,2,3]":
    if errorlevel 3 GOTO:Restart
    if errorlevel 2 GOTO:Password
    if errorlevel 1 GOTO:RemotePort
    :RemotePort
    CLS
    ECHO           修改远程桌面端口
    ECHO.
    ECHO 输入“q”返回主菜单
    ECHO 留空默认使用 3389
    ECHO 按回车键(Enter)确定
    ECHO.
    SET /P "Port=自定义范围(1-65535):"
    ECHO;%Port%|find " "&&goto:RemotePort
    IF "%Port%" == "q" (GOTO:Menu)
    IF "%Port%" == "0" (GOTO:RemotePort)
    IF "%Port%" == "" (SET Port=3389)
    IF %Port% LEQ 65535 (
    Reg add "%rdp%\Wds\rdpwd\Tds\tcp" /v "PortNumber" /t REG_DWORD /d "%Port%" /f  > nul
    Reg add "%rdp%\WinStations\RDP-Tcp" /v "PortNumber" /t REG_DWORD /d "%Port%" /f  > NUL
    Reg add "%wall%" /v "{338933891-3389-3389-3389-338933893389}" /t REG_SZ /d "v2.29|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=%Port%|Name=Remote Desktop(TCP-In)|" /f
    Reg add "%wall%" /v "{338933892-3389-3389-3389-338933893389}" /t REG_SZ /d "v2.29|Action=Allow|Active=TRUE|Dir=In|Protocol=17|LPort=%Port%|Name=Remote Desktop(UDP-In)|" /f
    CLS
    ECHO.
    ECHO 修改成功。
    ECHO 请牢记,你的远程端口是: %Port% 
    ECHO 重启计算机生效。
    TIMEOUT 5 >NUL
    GOTO:Menu
    ) ELSE (
    CLS
    ECHO.
    ECHO 错误端口:%Port% 
    ECHO 大于所设置的范围,
    ECHO 请在“1-65535”内。
    TIMEOUT 3 >NUL
    GOTO:RemotePort
    )
    :Password
    CLS
    ECHO 修改当前用户:%username%的密码!
    ECHO.
    ECHO 输入“q”返回主菜单
    ECHO 按回车键(Enter)确定
    ECHO.
    SET /p pwd1=请输入密码:
    IF "%pwd1%" == "q" (GOTO:Menu)
    CLS
    ECHO.
    ECHO 输入“q”返回主菜单
    ECHO 按回车键(Enter)确定
    ECHO.
    SET /p pwd2=请再次输入密码:
    IF "%pwd2%" == "q" (GOTO:Menu)
    IF "%pwd1%" == "%pwd2%" (
    net user "%username%" "%pwd2%"||PAUSE&&GOTO:Password
    ECHO.
    TIMEOUT 3 >NUL
    GOTO:Menu
    ) ELSE (
    CLS
    ECHO.
    ECHO 密码错误,请重新输入。
    TIMEOUT 3 >NUL
    GOTO:Password
    )
    :Restart
    CLS
    ECHO 正在倒计时重启……
    TIMEOUT /t 5
    shutdown.exe /r /f /t 0
    EXIT

     

  • Windows服务注册-极语言版

    以下代码请 新建工程-初级程序-粘贴窗体对象-粘贴代码模块-保存-关闭程序-再打开。

    在使用编译好的exe代码之前,请先在以管理员模式运行的cmd窗口中执行以下语句:

    让任意的cmd窗口都可执行sc命令,让sc等命令不需要以管理员权限执行cmd窗口,执行完以下代码之后,需要重启电脑

    reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f

    窗体对象:

    整数 窗体,标签1,标签2,标签3,标签4,标签5,标签6,编辑框1,编辑框2,编辑框3,编辑框4,编辑框5,编辑框6,按钮1,按钮2,按钮3;
    程序资源 24,"清单.xml";
    程序段 加载窗体
    整数 左=(桌面.宽-544)>>1,上=(桌面.高-365)>>1;
    窗体=创建窗口($0,程序.名称,"Windows服务注册",$10C80840,左,上,544,365,0,0,0,0);
    标签1=创建窗口($20,"Static","文件完整路径",$50000000,10,10,100,20,窗体,1,2,0);
    标签2=创建窗口($20,"Static","前置参数",$50000000,10,40,100,20,窗体,2,2,0);
    标签3=创建窗口($20,"Static","后置参数",$50000000,10,70,100,20,窗体,3,2,0);
    标签4=创建窗口($20,"Static","服务名称",$50000000,10,100,100,20,窗体,4,2,0);
    标签5=创建窗口($20,"Static","服务显示名称",$50000000,10,130,100,20,窗体,5,2,0);
    标签6=创建窗口($20,"Static","服务描述",$50000000,10,160,100,20,窗体,6,2,0);
    编辑框1=创建窗口($200,"Edit","",$50010000,126,10,400,20,窗体,7,4,0);
    编辑框2=创建窗口($200,"Edit","",$50010000,126,40,400,20,窗体,8,4,0);
    编辑框3=创建窗口($200,"Edit","",$50010000,126,70,400,20,窗体,9,4,0);
    编辑框4=创建窗口($200,"Edit","",$50010000,126,100,400,20,窗体,10,4,0);
    编辑框5=创建窗口($200,"Edit","",$50010000,126,130,400,20,窗体,11,4,0);
    编辑框6=创建窗口($200,"Edit","",$50010000,126,160,400,20,窗体,12,4,0);
    按钮1=创建窗口($0,"Button","注册服务",$50000000,10,200,516,30,窗体,13,3,0);
    按钮2=创建窗口($0,"Button","退出程序",$50000000,10,235,516,30,窗体,14,3,0);
    按钮3=创建窗口($0,"Button","帮助",$50000000,10,270,516,30,窗体,15,3,0);
    桌面.左=窗体;窗体启动;读取消息
    结束
    程序段 左键点击(编号)
    {判断(编号)为 15 按钮3_点击
    为 14 按钮2_点击
    }

    代码模块:

    程序段 窗体消息(窗口,消息,参数,数据)
        判断(消息)为 窗口关闭{如果(窗口=窗体)停止(0) 否则 销毁窗口(窗口);}
        为 单击左键{左键点击(参数)}
        处理窗口(窗口,消息,参数,数据)
    结束
    
    文本 绝对路径[120],前置参数[120],后置参数[120],服务名称[120],服务显示名称[120],服务描述[1000];
    程序段 窗体启动
    
    结束
    
    程序段 按钮9_点击
    发送消息(编辑框1,获取文本,120,绝对路径);
    发送消息(编辑框2,获取文本,120,前置参数);
    发送消息(编辑框3,获取文本,120,后置参数);
    发送消息(编辑框4,获取文本,120,服务名称);
    发送消息(编辑框5,获取文本,120,服务显示名称);
    发送消息(编辑框6,获取文本,1000,服务描述);
    文本 注册服务命令[665]="sc create "+服务名称+" binpath= ''"+前置参数+" "+绝对路径+" "+后置参数+"'' type= own start= auto displayname= "+服务显示名称;
    文本 添加描述命令[1017]="sc description "+服务名称+" ''"+服务描述+"''";
    //信息框(0,注册服务命令,"提示",信息图标);
    //信息框(0,添加描述命令,"提示",信息图标);
    命令行(注册服务命令);
    命令行(添加描述命令);
    文本 成功提示语[100]=服务名称+"注册服务成功";
    信息框(0,成功提示语,"恭喜",信息图标);
    结束
    
    程序段 按钮3_点击
    信息框(0,"还没做","抱歉",信息图标);
    结束
    
    程序段 按钮2_点击
    停止(0)    
    结束
    

    窗体页面效果:

  • 让任意的cmd窗口都可执行sc命令,不需要以管理员权限执行cmd窗口,执行完以下代码之后,需要重启电脑

    要将HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\下的EnableLUA项的十六进制值改为0,你可以使用以下reg add命令:

    reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f

    这里是命令各部分的解释:

    • reg add:这是用来添加注册表项或修改现有注册表项值的命令。
    • "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System":这是你想要修改的注册表项的完整路径。注意,因为路径包含反斜杠\,所以整个路径需要被引号包围起来。
    • /v EnableLUA/v参数后面跟的是你想要修改的注册表项的名称,这里是EnableLUA
    • /t REG_DWORD/t参数用来指定注册表项的类型。对于EnableLUA,它是一个DWORD(32位无符号整数)类型的值,所以这里使用REG_DWORD
    • /d 0/d参数后面跟的是你想要设置的值。对于EnableLUA0表示禁用用户账户控制(User Account Control,UAC)的提示,而1表示启用它。
    • /f:这个可选参数用来强制覆盖现有值,而不会提示用户确认。

    请注意,修改HKEY_LOCAL_MACHINE下的注册表项通常需要管理员权限。因此,你可能需要以管理员身份运行命令提示符(右键点击命令提示符图标,选择“以管理员身份运行”)来执行这个命令。此外,修改系统注册表项可能会影响系统的稳定性和安全性,所以在进行此类更改之前,请确保你了解这些更改的潜在后果,并考虑备份你的注册表或整个系统。

  • 使用sc注册服务

    在 Windows 的 SC(Service Control)命令行工具中,要创建一个服务并设置启动参数和描述,你需要分别指定 binPath  desc 参数。但是,请注意,binPath 参数的值必须是一个完整的命令行字符串,包括任何必要的启动参数。

    以下是一个例子,展示如何创建一个名为 ceshi 的服务,并设置其启动参数和描述:

    sc create ceshi binPath= "D:\ceshi\ceshi.exe 参数1 参数2" type= own start= auto displayname= "ceshi 服务"
    sc description ceshi "这是ceshi服务的描述"

    在这个例子中,参数1 和 参数2 是你想要传递给 ceshi.exe 的启动参数。请确保这些参数用空格分隔,并且整个 binPath 的值(包括路径和参数)用双引号括起来,以防止路径或参数中的空格导致解析错误。

    displayname 参数设置了服务在服务列表中的显示名称,而 description 参数则设置了服务的描述。

    确保你有足够的权限来创建服务(通常需要管理员权限)。此外,请检查路径和文件名是否正确,以及服务是否能够在该路径下正确执行。

    最后,如果 ceshi.exe 需要以特定的用户身份运行(不是默认的 LocalSystem 账户),你可能还需要使用 obj= 参数来指定运行服务的账户。

    完成创建后,你可以使用 sc queryex ceshi 命令来查看服务的详细信息,确保它已正确设置。如果需要进一步的配置或管理,可以使用 sc config 命令进行。

  • 批处理获取当前文件夹以及子文件夹的所有文件和路径,输出到一个txt文件中

    要将批处理脚本中获取的文件和路径输出到一个文本文件中,你可以使用重定向操作符 > 或追加操作符 >>。下面是一个修改后的脚本示例,它会将输出追加到一个名为 output.txt 的文本文件中:

    @echo off  
    setlocal enabledelayedexpansion  
      
    :: 设置当前目录变量和输出文件路径  
    set "currentDir=%cd%"  
    set "outputFile=output.txt"  
      
    :: 确保输出文件存在,如果不存在则创建  
    if not exist "%outputFile%" type nul > "%outputFile%"  
      
    :: 遍历当前目录及其所有子目录,并将文件路径追加到输出文件中  
    for /r "%currentDir%" %%F in (*) do (  
        echo %%F>> "%outputFile%"  
    )  
      
    echo 文件列表已保存到 %outputFile%  
    endlocal

    这个脚本做了以下几件事:

    1. 使用@echo off来关闭命令回显,使输出更整洁。
    2. 使用setlocal enabledelayedexpansion来启用延迟变量扩展,这样我们就可以在for循环内部使用!来访问变量。
    3. 使用set "currentDir=%cd%"来获取当前目录的路径,并将其存储在变量currentDir中。
    4. 使用for /r "%currentDir%" %%F in (*)来递归遍历当前目录及其所有子目录中的文件。这里,%%F代表每个文件的完整路径。
    5. for循环内部,使用echo %%F来输出每个文件的完整路径。
    6. 使用endlocal来结束局部环境设置。

    在这个脚本中:

    • set "outputFile=output.txt" 设置了输出文件的名称。
    • if not exist "%outputFile%" type nul > "%outputFile%" 确保输出文件存在。如果文件不存在,它会创建一个空文件。
    • echo %%F>> "%outputFile%" 将每个文件的完整路径追加到输出文件的末尾。>> 操作符用于追加内容到文件中,而不是覆盖文件内容。如果你希望每次运行脚本时都覆盖输出文件的内容,可以使用单个 > 操作符。

    保存这个脚本为 .bat 文件,并在需要获取文件和路径的目录中运行它。脚本执行完毕后,你将在相同的目录中找到一个名为 output.txt 的文件,其中包含了所有文件和路径的列表。

  • 永久禁用win系统更新

    禁用Windows系统更新的方法有多种,但请注意,不建议您永久禁用系统更新,因为系统更新通常会修复重要的安全漏洞和改进系统的性能和稳定性。然而,如果您有特殊原因需要禁用系统更新,以下是一种可能的方法:

    1. 打开命令提示符(CMD)或 PowerShell。

    2. 输入以下命令以禁用Windows Update服务:

     sc config wuauserv start= disabled

    输入以下命令以禁用自动更新:

     sc config bits start= disabled

    输入以下命令以禁用Windows Update Agent服务:

     sc config wuaagent start= disabled

    重启计算机以使更改生效。

    请注意,这些命令可能需要管理员权限才能运行。此外,禁用系统更新可能会导致您的计算机容易受到恶意攻击和安全漏洞的影响。因此,强烈建议您仅在必要时才禁用系统更新,并在可能的情况下尽快更新您的计算机。

  • Win10 微软拼音添加小鹤双拼以及其他配置

    我在 Mac、Ubuntu 以及 Win10 一直都用的 Rime 输入法,使用小鹤双拼输入方案。但是在 Win10 上,小狼毫 —— Rime 在 Windows 平台上的名字 —— 总有些小问题。

    小狼毫有两种输入模式,有时想切换到系统的默认英文输入时,就得按两次 Win + Space 来切换,很不习惯。另一个问题是在 WSL 终端里,它能输入中文,但是不能输入全角符号。

    系统自带的微软拼音在兼容性和流畅度方面更好,一直没有用它,是因为它虽然支持双拼,但是没有小鹤双拼输入方案。今天在小鹤双拼的官方论坛找到了简便的方法,给微软拼音添加了小鹤双拼方案。

    首先打开注册表,找到这个路径

     计算机\HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS

    然后新建一个名为 UserDefinedDoublePinyinScheme0 的字符串值,数值数据为

     小鹤双拼*2*^*iuvdjhcwfg^xmlnpbksqszxkrltvyovt

    然后打开控制面板,找到微软拼音的配置页面,把新出现的小鹤双拼设置为默认值。

    直接修改注册表的最大意义在于,不需要自己一个个去定义按键和音节的对应关系了。

    之后我对输入法进行了一些额外的配置,以便符合我的习惯。

    Win10 里,默认是这样的:默认中文输入法,所有程序使用相同的输入法。这种模式有时很不方便,比如在聊天窗口或者写文章过程中(输入中文)切换到浏览器要输入 URL,又比如要切换到终端软件或者 IDE 要开始写代码时。我的习惯是每个程序打开时,都默认是英文输入法,需要时才切换到中文输入法。

    这个需要到输入法配置的“高级配置”里去修改。

    修改默认为英文输入法,并且不让所有程序窗口共用输入法。

    打起汉字来舒服了,代码写起来也舒服了。

    原文:https://ifttl.com/add-flypy-to-win10-microsoft-pinyin-and-other-configuration/