python实现关闭usb功能
禁用usb和启用usb
一禁用usb自动加载功能
公司内部有时候需要禁用usb接口的文件拷贝,但是打印机,扫描枪等待其他设备的使用,我们应该怎么做呢,很简单,可以通过修改BIOS,注册表和第三方软件实现,这里因为我要拖过pytion,携程脚本来实现,所以,我就通过修改注册表就来实现。
先说下方法:
1 打开注册表,怎么打开,大家可以通过百度一下来找到方法
2找到如下目录
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR
3点进去,找到start
4鼠标右键,点击修改,把数值3改成4
(3代表自动分配盘符,4代表禁止自动分配盘符)
5点击确定,大功告成
****小编测试的时候是不需要重启的,改完直接就可以使用了****
二启用usb
方法同上,只是把4改成3就可以。
三代码如下
程序长这个样子
# auther rufeng
import win32api
import win32con
import PySimpleGUI as sg
def usb_close():
#计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR
# 返回句柄
key1=win32con.HKEY_LOCAL_MACHINE
subkey=r"SYSTEM\CurrentControlSet\Services\USBSTOR"
sam=win32con.KEY_ALL_ACCESS
subkeyvalue='Start'
key = win32api.RegOpenKeyEx(key1,subkey,0,sam)
# 函数说明
# 1 RegOpenKeyEx(key, subkey, reserved, sam)
# 函数作用打开注册表,返回句柄
# key固定值,有五个HKEY_CLASSES_ROOT,是HKEY_LOCAL_MACHINE\Software 的子项,保存打开文件所对应的应用程序信息
# HKEY_CURRENT_USER,是HKEY_USERS的子项,保存当前用户的配置信息
# HKEY_LOCAL_MACHINE,保存计算机的配置信息,针对所有用户
# HKEY_USERS,保存计算机上的所有以活动方式加载的用户配置文件
# HKEY_CURRENT_CONFIG,保存计算机的硬件配置文件信息
# sunkey子目录,也就是key后面的目录
# reserved必须为0
# sam 催注册表要做的操作包括win32con.KEY_ALL_ACCESS、win32con.KEY_READ、win32con.KEY_WRITE等
#2 RegCloseKey(key)
# 函数描述,关闭注册表
# Key:已经打开的注册表项的句柄。也就是打开注册表返回的句柄
# 3RegQueryValueEx(key,valueName) 读取某一项值
#4RegSetValueEx(key,valueName,reserved,type,value) 要修改或重新设置注册表某一项的项值。如果项值存在,则修改该项值,如果不存在,则添加该项值。
#
#
print(key)
key2 = win32api.RegQueryValueEx(key, subkeyvalue)#获取项目值
print(key2)
if key2[0]!=4: #是否为4,4为禁用,默认一般是3
win32api.RegSetValueEx(key,subkeyvalue,0,win32con.REG_DWORD,4)#修改项目的值
zt='已禁用'
win32api.RegCloseKey(key)#关闭注册表
return zt
def usb_start():
key1 = win32con.HKEY_LOCAL_MACHINE
subkey = r"SYSTEM\CurrentControlSet\Services\USBSTOR"
sam = win32con.KEY_ALL_ACCESS
subkeyvalue = 'Start'
key = win32api.RegOpenKeyEx(key1, subkey, 0, sam)
key2 = win32api.RegQueryValueEx(key, subkeyvalue) # 获取项目值
print(key2)
if key2[0] != 3: # 判断是否为3,3是自动加载,
win32api.RegSetValueEx(key, subkeyvalue, 0, win32con.REG_DWORD, 3) # 修改项目的值
zt='已开启'
win32api.RegCloseKey(key) # 关闭注册表
return zt
def ui_w():
sg.theme()
layout = [[sg.T(' '*10),sg.Text('关闭usb存储功能',),sg.T(' '*10)],
[sg.T('当前状态:'),sg.T(key='zt')],
[sg.T(' '*5),sg.Button('禁用',key='gb'),sg.T(' '*4) ,sg.Button('开启',key='kq'),sg.T(' '*4),sg.Button('退出',k='exit')],
]
w=sg.Window('usb接口关闭',layout,finalize=True,icon=r"ff.ico")
win2_active=False
while True:
event, value = w.read()
if event in ('exit', None):
break
elif event =='gb':
zt=usb_close()
w['zt'](zt)
elif event=='kq' and not win2_active:
win2_active=True
w.hide()
layout2 = [[sg.Text('请输入密码'),sg.Input(key='pwd')], # note must create a layout from scratch every time. No reuse
[sg.Button('启动',key='qd2'),sg.Button('退出',key='exit')]]
win2 = sg.Window('启动usb接口', layout2,finalize=True)
while True:
ev2, vals2 = win2.read()
if ev2 in ('exit',None):
break
elif ev2=='qd2':
pwd=str.strip(vals2['pwd'])
if pwd =='arion':
zt=usb_start()
sg.popup('修改成功',title='提示')
else:
sg.popup('请输入正确的密码',title='提示')
win2.close()
win2_active = False
w.close()
w.close()
if __name__=='__main__':
ui_w()
python实现关闭usb功能的更多相关文章
- Android关闭USB的ADB调试和文件传输功能(禁用USB)【转】
本文转载自:https://blog.csdn.net/jun4331247/article/details/51201825 通过设置系统属性(System Property)[persist.sy ...
- Python编程实现USB转RS485串口通信
---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:Python编程 ...
- 通过暗码去打开/关闭usb debug开关
通过暗码去打开/关闭usb debug开关 通过暗码去打开/关闭usb debug开关1. Description2. Analysis3. Solution4. Summary 1. Descrip ...
- 手机支持USB功能、驱动文件对应关系
手机支持USB功能: 1.UMS(USB MASS Stronge) : 连接PC作为存储盘使用 2.ADB : 用于调试 3.MTP :连接PC作为存储盘使用(win XP需要安装WMP10 以上 ...
- iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)
一.前言 iOS开发更新APP我觉得是比较坑的就是审核时间比较长,审核比较严,对于刚入行的小伙伴来说,雷区比较多:所以热更新是比较重要的: 大家也许会发现我们常用的QQ现在下来也就一百多兆,但是用了几 ...
- Javascript动态调整文章的行距、字体、颜色,及打印页面和关闭窗口功能
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- win7打开或关闭windows功能 提示“出现错误,并非所有的功能被更改”,管理员权限惹的祸
2013-07-25 18:12:06 最近要用到windows的telnet功能,本来是很简单的事情,因为管理员权限的问题,花了不少时间,才发现是管理员权限惹的祸,更滑稽的是,自己一直以来都不是管理 ...
- USB系列之五:用汇编实现的一些USB功能
前面的USB系列一至四,实现了我们需要的一些USB功能,但都是用C语言的32位代码,之后我们插进了三篇关于DOS下设备驱动程序的文章,我们现在应该清楚,当我们要在DOS下写一个U盘的驱动时,最好使用汇 ...
- cmd命令行模式开启或关闭 windows功能 (转载)
1,用管理员身份运行cmd. 2,运行 dism /online /Get-Features >C:\1.txt,这样会在C盘生成一个txt文件,文件内容是功能列表,可以对照“打开或关闭win ...
- 在 uniGUI 中实现自动弹窗后延迟几秒关闭 — Toast 功能
在 uniGUI 中实现自动弹窗后延迟几秒关闭 — Toast 功能. uniGUI 的客户端使用 EXTJS 6 ,本就有 Toast 功能. 但UniGui 官方没有相应的控件,我们如何使用 EX ...
随机推荐
- 狂神day3
放个假,有几天没有学习了,也好久没有更新博客了 IDEA使用 在上一次的时候,我们直接建立一个工程写了一个"helloworld"的java文件,今天首先说的是先建立一个空的工程, ...
- 微信支付 easy wechat 使用
/*微信小程序的配置信息微信商户信息*/ public function __construct(){ parent::__construct(); $this->OrderModel = ne ...
- python跨文件之全局变量
Python中的global关键字,你了解吗? - 知乎 (zhihu.com) global 关键字 python跟C不一样,c是在一个文件定义后在另一个文件声明下是extern变量就好.pyth ...
- C Ⅷ
数组 int number[100]; //这个数组可以放100个数 int x; int cnt = 0; double sum = 0; scanf("%d", & ...
- SQL的分类
DDL: 数据定义语言,用来定义数据库对象(数据表,表 ,字段) : DML:数据操作语言,用来对数据库表中的数据进行增删改 : DQL:数据库查询语言,用来查询数据库中的表的记录 DCL:数据控制语 ...
- 关于安装Wind金融终端后,启动QT后频繁跳出WDF.dll文件注册成功窗口的问题
安装Wind金融终端后,启动QT后频繁跳出WDF.dll文件注册成功窗口的信息. 经过排查后发现,主要问题出在系统环境变量上. 安装了wind金融终端后,用户系统环境变量PATH里多了两个wind相关 ...
- 在VMWare里安装Win11虚机
1. 安装win11有最低硬件要求 64位CPU双核,内存4G,硬盘64G,受信任的平台模块(TPM)2.0,支持UEFI安全启动 2. VMware新建虚机的设置 1)创建64位虚拟机,CPU设置为 ...
- MobaXterm注册认证版,亲测可用,操作简单(本机已安装python3环境)
去github地址下下载代码 解压后在该目录下打开CMD 执行MobaXterm-Keygen.py <UserName> <Version>命令 生成的文件放在安装目录下,我 ...
- 树莓派利用摄像头实现web在线监控
1.https://shumeipai.nxez.com/2021/10/21/raspberry-pi-usb-camera-to-realize-remote-network-monitoring ...
- Javaweb学习笔记第十五弹--Listente概述、AJAX、Axiox、JSON
Listener(监听器) 可以在application.session和request三个对象创建 Javaweb提供了8个监听器,其中较为典型的是ServletContextListener监听器 ...