Python3生成脚本实现重置键盘键位

个人博客点这里

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Created by 秋叶夏风

# 本模块的功能:<重置键盘键位>


import sys
import os

save_format = "bat"  # 这个值可以修改,有两个选项(bat和reg),可选择生成bat批处理文件或者reg注册表脚本文件,功能一样


class CountError(Exception):  # 文本文件格式错误异常
    pass


class FileFormatError(Exception):  # save_format值异常
    pass


if save_format not in ["bat", "reg"]:
    raise FileFormatError("The variable 'save_format'`s value must be 'bat' or 'reg'.")

if __name__ == "__main__":

    if not os.path.isdir("layout_" + save_format):
        os.mkdir("layout_" + save_format)

    if len(sys.argv) == 1:
        if save_format == "bat":
            with open("layout_bat/recover.bat", 'w') as f:
                f.write(
                    '@echo off\nreg delete "hklm\\system\\currentcontrolset\\control\\keyboard layout" /v "ScanCode Map" /f\necho "键位已恢复,重启系统后生效"\npause')
            input("恢复文件recover.bat已生成至layout_bat文件夹下,以管理员身份右键执行该文件后重启系统生效。\n按回车键退出程序...")

        else:
            with open("layout_reg/recover.reg", 'w') as f:
                f.write(
                    'Windows Registry Editor Version 5.00\n[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Keyboard Layout]\n"ScanCode Map"=hex:00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00')
            input("恢复文件recover.reg已生成至layout_reg文件夹下,双击执行该文件后重启系统生效。\n按回车键退出程序...")

    elif len(sys.argv) == 2:
        scan_code_dict = {
   
            "00 00": "None",
            "01 00": "Esc",  # 即Esc键的扫描码是"0001"
            "02 00": "1",
            "03 00": "2",
            "04 00": "3",
            "05 00": "4",
            "06 00": "5",
            "07 00": "6",
            "08 00": "7",
            "09 00": "8",
            "0a 00": "9",
            "0b 00": "0",
            "0c 00": "-",
            "0d 00": "=",
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值