软件开机自启动(一)——python判断注册表中某键是否存在

python判断注册表中某键是否存在

百度搜索了一下居然没有,Google我还没有搜索,大多数的人还是用的百度,看来还得由我来填充这段空白了哦,本来想偷懒用已经有的方法来的,看来要自己写了!!!

实现先讲一下我想要判断键是否存在的目的吧
在做桌面应用开发的时候难免有的程序想要开机自启动,或者高级的让用户来选择是否开机自启,由此判断注册表中的键是否存在有变得很重要了在这里插入图片描述

# -*- coding: utf-8 -*-
__author__ = 'apsinc'
import win32con,winreg
try:
    reg_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"  # 键的路径
    key = winreg.OpenKey(win32con.HKEY_CURRENT_USER, reg_path, 0, win32con.KEY_ALL_ACCESS)
    location, type = winreg.QueryValueEx(key, "auto_run")
    print("auto_run存在",location, type)
    if type == 1:
        print("开")
except FileNotFoundError as e:
    print("不存在")

except:
    print("Error")

进入注册表的方法:windows键+R,输入regedit
在这里插入图片描述
注册表自启动的位置:计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
在这里插入图片描述
现在,我们先新增一个键在这里插入图片描述
运行一下代码
在这里插入图片描述
删除键在测试一下在这里插入图片描述
接下来将判断键是否存在封装一下方便下次有同样的需求时调用

"""判断键是否存在"""
def Judge_Key(key_name,
              reg_root=win32con.HKEY_CURRENT_USER,#根节点  其中的值可以有:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG
              reg_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",# 键的路径
              ):
    """
    :param key_name: #  要查询的键名
    :param reg_root: # 根节点
#win32con.HKEY_CURRENT_USER
#win32con.HKEY_CLASSES_ROOT
#win32con.HKEY_CURRENT_USER
#win32con.HKEY_LOCAL_MACHINE
#win32con.HKEY_USERS
#win32con.HKEY_CURRENT_CONFIG
    :param reg_path: #  键的路径
    :return:feedback是(0/1/2/3:存在/不存在/权限不足/报错)
    """
    reg_flags = win32con.WRITE_OWNER | win32con.KEY_WOW64_64KEY | win32con.KEY_ALL_ACCESS
    try:
        key = winreg.OpenKey(reg_root, reg_path, 0, reg_flags)
        location, type = winreg.QueryValueEx(key, key_name)
        print("键存在", "location(数据):", location, "type:", type)
        feedback=0
    except FileNotFoundError as e:
        print("键不存在",e)
        feedback =1
    except PermissionError as e:
        print("权限不足",e)
        feedback = 2
    except:
        print("Error")
        feedback = 3
    return  feedback

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值