Python winreg将cmd/PowerShell(管理员)添加到右键菜单

news2025/1/20 18:33:03

效果

在这里插入图片描述
在这里插入图片描述

1. 脚本

用管理员权限运行,重复执行会起到覆盖效果(根据sub_key)。

  • icon自己设置。
  • text可以自定义。
  • sub_key可以改但不推荐(避免改成和系统已有项冲突的)。
  • command不要改。
from winreg import *


registry = r"Directory\Background\Shell"

# Warning: 不要将sub_key改为cmd或PowerShell,否则可能会与系统已有项冲突。
config = [
    {
        "sub_key": "mouse_cmd",
        "text": "Windows Command",
        "icon": r"C:\Users\CF\Desktop\icon\cmd.ico",
        "command": "cmd",
    },
    {
        "sub_key": "mouse_cmd_admin",
        "text": "Windows Command (管理员)",
        "icon": r"C:\Users\CF\Desktop\icon\cmd.ico",
        "command": "PowerShell -windowstyle Hidden -Command \"Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs\"",
    },
    {
        "sub_key": "mouse_PowerShell",
        "text": "Windows PowerShell",
        "icon": r"C:\Users\CF\Desktop\icon\powershell.ico",
        "command": "PowerShell",
    },
    {
        "sub_key": "mouse_PowerShell_admin",
        "text": "Windows PowerShell (管理员)",
        "icon": r"C:\Users\CF\Desktop\icon\powershell.ico",
        "command": 'powershell -WindowStyle Hidden -NoProfile -Command "Start-Process -Verb RunAs powershell.exe -ArgumentList \\"-NoExit -Command Push-Location \\\\\\"\\"%V/\\\\\\"\\"\\"',
    },
]


for item in config:
    key = OpenKey(HKEY_CLASSES_ROOT, registry)
    SetValue(key, item["sub_key"], REG_SZ, item["text"])  # 创建子键,并设置其默认项的值(提示文字)

    key = OpenKey(
        HKEY_CLASSES_ROOT, registry + "\\" + item["sub_key"], access=KEY_WRITE
    )  # 打开子键

    SetValueEx(key, "icon", None, REG_SZ, item["icon"])  # 在子键中设置Icon项的值

    SetValue(
        key, "command", REG_SZ, item["command"]
    )  # 在子键中创健子键command,设置其默认项的值(command)

print("successfully")

2. 一次设置的过程

想了解过程的可以看下下面的。

# function: add cmd.exe to right-click context menu

g_text = "命令提示符"  # 显示文字
g_icon = r"C:\Users\CF\Pictures\Saved Pictures\cmd.ico"  # 图标路径
g_exe = r"C:\Windows\system32\cmd.exe"  # 可执行文件路径
g_key = r"right-click_cmd"  # 自定义,注册表字段名,不要和已有的冲突

import winreg

key = winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, r"Directory\Background\Shell")

winreg.SetValue(key, g_key, winreg.REG_SZ, g_text)


key = winreg.OpenKeyEx(
    winreg.HKEY_CLASSES_ROOT,
    r"Directory\Background\Shell\\" + g_key,
    access=winreg.KEY_WRITE,
)
winreg.SetValueEx(key, "Icon", None, winreg.REG_SZ, g_icon)
winreg.SetValue(key, "command", winreg.REG_SZ, g_exe)


# 在用管理员权限时,方法是唤起一个PowerShell,然后Start-Process来发起一个管理员权限的进程;
#   -verb Runas意思是管理员
#   /s /k pushd %V大概是传递给cmd路径参数

# 示例:
# PowerShell -windowstyle hidden -Command "Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1215223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端转行可以做什么

前端开发者通常拥有很好的技术背景和解决问题的能力,所以有很多可能的职业选择。以下是一些可能的选择: 全栈开发:这是一个非常热门的职位,需要能够处理前端和后端工作。使用多种编程语言和技术来构建从数据库到用户界面的整个应…

ps5计时计费软件安装教程,佳易王电玩店计时收费系统

ps5计时计费软件安装教程,佳易王电玩店计时收费系统 一、佳易王电玩PS5游戏厅计时计费软件部分功能简介: 1、计时计费功能 :开台时间和所用的时长直观显示,每3秒即可刷新一次时间。 2、销售商品功能 :商品可以绑定桌…

【深度学习实验】网络优化与正则化(五):数据预处理详解——标准化、归一化、白化、去除异常值、处理缺失值

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、优化算法0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正:动量法Momen…

ubuntu云服务器配置SFTP服务

目录 一、安装并运行SSH服务 1,安装ssh服务 2,运行ssh 3,查看ssh运行状态 二、创建SFTP用户并进行用户相关的配置 1,创建SFTP用户 2,限制用户只能使用 SFTP,并禁止 SSH 登录。打开/ect/ssh/sshd_conf…

一文看懂Spark中Cache和CheckPoint的区别

目录 循循渐进理解使用Cache或者PersistCheckPoint缓存和CheckPoint的区别 循循渐进理解 wc.txt数据 hello java spark hadoop flume kafka hbase kafka flume hadoop看下面代码会打印多少条-------------------------(RDD2) import org.apache.spark.rdd.RDD import org.ap…

这就是思维导图!全面分析思维导图的实际用途

思维导图是一种以图形方式呈现的思维工具,它以中心主题为核心,通过分支展开相关的子主题和想法。它可以帮助我们更好地组织和理解信息,提高学习、工作和生活的效率。 在信息爆炸的时代,有效地管理和利用大量的信息成为一个亟待解决…

Linux - Namespace

一、namespace 是什么? Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个 namespace 中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没…

12-2- DCGAN -简单网络-卷积网络

功能 随机噪声→生成器→MINIST图像。 训练方法 1 判别器的训练,首先固定生成器参数不变,其次判别器应当将真实图像判别为1,生成图像判别为0 loss=loss(real_out, 1)+loss(fake_out, 0) 2 生成器的训练,首先固定判别器参数不变,其次判别器应当将生成图像判别为1 loss =…

如何避免在Flask中使用Response对象

在Flask框架中,Response对象的__bool__和__nonzero__方法被重载,以便返回一个表示HTTP响应状态是否为’OK’的布尔值。然而,这可能会导致一些预期之外的行为。 解决方案 对于上述问题,可以通过直接检查Response对象的ok属性来避…

在哪里可以制作一本精美的翻页产品册呢?

你是否曾经为了一张可滑动的画册而翻看了整个产品册?翻页产品册是一种数字化的画册形式,它可以在电脑、手机、平板等设备上进行浏览和阅读。相比传统的纸质画册,翻页产品册有着更多的优势和用途。那么,在哪里可以制作一本这种精美…

解决requests库中session.verify参数失效的问题

在使用requests库进行HTTP请求时,如果在环境变量中设置了’REQUESTS_CA_BUNDLE’,并且在session对象中设置了verify参数为False,那么API请求会使用环境变量中的值而不是session对象中的值。这是因为在requests库中,当session对象中…

(十一)Flask模板引擎jinja2

模板引擎Jinja2 一、简介及基本使用: Flask使用Jinja2作为默认的模板引擎。Jinja2是一个功能强大且易于使用的模板引擎,它允许我们在HTML中嵌入Python代码,并通过将模板和数据进行渲染来生成动态内容。 实战之在Flask中使用Jinja2模板引擎…

GDS 命令的使用 srvctl service TAF application continuity

文档中prim and stdy在同一台机器上,不同机器需要添加address list TAF ENABLED GLOBAL SERVICE in GDS ENVIRONMNET 12C. (Doc ID 2283193.1)​编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.…

操作系统(五)文件系统和I/O系统

文章目录 前言文件系统文件系统和文件文件描述符目录、文件别名和文件系统分层文件系统目录实现文件别名名字解析(路径遍历)文件系统挂载文件系统种类 虚拟文件系统文件缓存和打开文件打开文件 文件分配空闲空间管理和冗余磁盘阵列RAID空闲空间管理冗余磁…

小程序游戏、App游戏与H5游戏:三种不同的游戏开发与体验方式

在当今数字化的时代,游戏开发者面临着多种选择,以满足不同用户群体的需求。小程序游戏、App游戏和H5游戏是三种流行的游戏开发和发布方式,它们各自具有独特的特点和适用场景。 小程序游戏:轻巧便捷的社交体验 小程序游戏是近年来…

为什么都说学医的转行网络安全行业更容易些?

网络系统坏了,被入侵破坏了,找安全工程师防护修补。如果没有修好,我可以不给钱,再找一家能修好的。但是看病就不一样了,就算医生没有给我治好病,也照样要收医疗费。 这样的类比乍一听上去好像挺有道理&…

解析:什么是生成式AI?与其他类型的AI有何不同?

原创 | 文 BFT机器人 快速浏览一下头条新闻,你会发现生成式AI似乎无处不在。事实上,一些新闻标题甚至可能是通过生成式AI编写的,例如OpenAI旗下的ChatGPT,这个聊天机器人已经展现出了生成看起来像人类所写文本的惊人能力。 当人们…

蓝桥杯每日一题2023.11.16

蓝桥杯大赛历届真题 - C 语言 B 组 - 蓝桥云课 (lanqiao.cn) 题目描述 对于此代码&#xff0c; 注释解释如下&#xff1a;答案&#xff1a;f(a,k1,m-j,b)&#xff1b; 在这里插入代码片#include <stdio.h> #define N 6 #define M 5 #define BUF 1024 void f(int a[], in…

市场研究报告:量子计算将颠覆银行业!

&#xff08;图片来源&#xff1a;网络&#xff09; 量子银行将对金融体系产生重大影响&#xff0c;它在量子计算和区块链的基础上建立了一个更快的支付机制&#xff0c;并且通过消除传统点对点支付中常见的中间人&#xff0c;降低了运营成本。 量子计算及其运作机制 中东地区…

【人工智能实验】遗传算法求解旅行商问题 golang

人工智能经典问题旅行商求解 使用遗传算法求解&#xff0c;算法流程如下&#xff1a; 读取所有的城市坐标&#xff0c;记作集合initCitys生成popSize个种群&#xff0c;记为pops取出种群中适应度最高的&#xff0c;记作rank0使用轮盘算法&#xff0c;从rank0中选出eliteSize个…