IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> [2021-10-01]信息安全实验7——注册表 -> 正文阅读

[开发工具][2021-10-01]信息安全实验7——注册表

本文代码大部分参看了博客:python程序开机自启动_python打包exe开机自动启动的实例(windows),侵删~

一、通过修改注册表,实现QQ程序开机后自动运行或不自动运行

关于注册表,可以先看看这篇教程3分钟掌握「注册表」,从此再也不怕误操作! (360doc.com)

(1)首先Windows+R,调出“运行程序”。

image-20210927101156969

(2)输入regedit,进入注册表。

(3)进入到计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run路径下。

PS:Run 键值代表着开机启动项,也就是说在这个项下的键值会随着开机启动。

image-20210927101642263

(4)右键,选择“新建”,“字符串值”,命名为QQ,双击,进行赋值。

可以通过右键QQ的快捷方式找到他的执行文件的路径,如图:

image-20210927102025810

复制目标对应的路径,赋值给注册表。

image-20210927102127884

(5)点击“确定“,关闭注册表,重启电脑之后,QQ就会开机自启动了。

(6)如果想让QQ不开机自启动,只要找到刚刚添加的值,右键删除,确定即可。

二、编写一个桌面程序或脚本程序,通过读写注册表实现QQ程序开机后自动运行

开发环境:Python3.8 + PyCharm

import PySimpleGUI as simpleGui
import win32api
import win32con

def AutoStart():#设置TIM自动启动
    name = 'TIM'  # 要添加的项值名称
    path = 'D:\Program Files (x86)\Tencent\TIM\Bin\QQScLauncher.exe'  # 要添加的exe路径
    KeyName = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\'  # 注册表项名
    try:  # 异常处理
        key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, KeyName, 0, win32con.KEY_ALL_ACCESS)
        win32api.RegSetValueEx(key, name, 0, win32con.REG_SZ, path)
        win32api.RegCloseKey(key)
        print(KeyName)
        print('添加成功!')
    except:
        print('添加失败')

def Disable():#将TIM的路径设置为空,同样不能启动
    name = 'TIM'  # 要添加的项值名称
    path = ''  # 要添加的exe路径
    KeyName = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\'  # 注册表项名
    try:  # 异常处理
        key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, KeyName, 0, win32con.KEY_ALL_ACCESS)
        win32api.RegSetValueEx(key, name, 0, win32con.REG_SZ, path)
        win32api.RegCloseKey(key)
        print(KeyName)
        print('删除成功!')
    except:
        print('删除失败')

def main():
    simpleGui.theme("BluePurple")
    try:
        # 创建 mainWindow 布局
        mainWindowLayout = [
            [simpleGui.Button('开机自启动', key='keyAutoStart',size=(10, 2)), simpleGui.Button('禁止自启动', key='keyDisable',size=(10, 2))]
        ]

        # 创建窗口,引入布局,并进行初始化。
        mainWindow = simpleGui.Window('QQ自启动设置', layout=mainWindowLayout, finalize=True,size=(600,50),element_justification='center')

        # 创建一个事件循环,否则窗口运行一次就会被关闭。
        while True:
            global window
            window, event, values = simpleGui.read_all_windows()
            print(window, event, values)  # 可以打印一下着看变量的内容
            if event == simpleGui.WIN_CLOSED:
                break
            elif window == mainWindow:
                if event == 'keyAutoStart':
                    AutoStart()
                else:
                    Disable()
        # 关闭窗口
        mainWindow.close()
    except Exception as result:
        print("函数 main 捕捉到异常:%s" % result)

if __name__ == '__main__':
    main()

image-20211001015508085

image-20211001015642608

三、编写一个桌面程序或脚本程序,通过读写注册表实现开机自启动

开发环境:Python3.8 + PyCharm

执行可执行文件时,获取可执行文件的路径,将程序加入到当前用户的自启动项,删除时只是将启动项的路径置空,程序不能自启动,怎么删除新建的启动项我不会了。

import PySimpleGUI as simpleGui
import win32api
import win32con
import os
import sys

def AutoStart():#设置自动启动
    name = 'Myself'  # 要添加的项值名称
    if getattr(sys, 'frozen', False):
        application_path = os.path.dirname(sys.executable)  # 执行文件的路径
    elif __file__:
        application_path = os.path.dirname(__file__)
    print("获取当前执行文件的目录:" + application_path)
    KeyName = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\'  # 注册表项名
    try:  # 异常处理
        key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, KeyName, 0, win32con.KEY_ALL_ACCESS)
        win32api.RegSetValueEx(key, name, 0, win32con.REG_SZ, application_path)
        win32api.RegCloseKey(key)
        print(KeyName)
        print('添加成功!')
    except:
        print('添加失败')

def Disable():#将路径设置为空,同样不能启动
    name = 'Myself'  # 要添加的项值名称
    path = ''  # 要添加的exe路径
    KeyName = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\'  # 注册表项名
    try:  # 异常处理
        key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, KeyName, 0, win32con.KEY_ALL_ACCESS)
        win32api.RegSetValueEx(key, name, 0, win32con.REG_SZ, path)
        win32api.RegCloseKey(key)
        print(KeyName)
        print('删除成功!')
    except:
        print('删除失败')

def main():
    simpleGui.theme("BluePurple")
    try:
        # 创建 mainWindow 布局
        mainWindowLayout = [
            [simpleGui.Button('将本程序加入开机自启动', key='keyAutoStart',size=(20, 2)), simpleGui.Button('将本程序移出开机自启动', key='keyDisable',size=(20, 2))]
        ]

        # 创建窗口,引入布局,并进行初始化。
        mainWindow = simpleGui.Window('注册表自启动', layout=mainWindowLayout, finalize=True,size=(600,50),element_justification='center')

        # 创建一个事件循环,否则窗口运行一次就会被关闭。
        while True:
            global window
            window, event, values = simpleGui.read_all_windows()
            print(window, event, values)  # 可以打印一下着看变量的内容
            if event == simpleGui.WIN_CLOSED:
                break
            elif window == mainWindow:
                if event == 'keyAutoStart':
                    AutoStart()
                else:
                    Disable()
        # 关闭窗口
        mainWindow.close()
    except Exception as result:
        print("函数 main 捕捉到异常:%s" % result)

if __name__ == '__main__':
    main()

img

image-20211001111032968

image-20211001111011118

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-02 15:04:03  更:2021-10-02 15:06:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:50:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码