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 ...
随机推荐
- Spring Cloud学习记录
Eureka和zookeeper都是注册中心为什么zookeeper不适合? 1.CAP原则.一致性,可用性,分区容错性,最多满足两种.zookeeper遵循CP原则,实际项目中不应该为了一致性失去可 ...
- Python 爬虫代码应该怎么写?
对于入行已久的老程序员也并不一定精通爬虫代码,这些需要时间的沉淀还需要更多的实战案例,简单的问句你真的会写爬虫么?下面就是我日常写的一个y文件加上几个请求并且把需要的功能全部实现模块化,可以让我们爬虫 ...
- 认识flutter
flutter是谷歌的移动的ui框架,可以快速的在ios和安卓上构建高质量的原生用户界面.最主要的是完全免费开源.开发快,最重要的是使用flutter开发的开发工作者也越来越多了,生态圈也越来越好了. ...
- IDEA的安装与使用
IDEA官网 进入该链接下载社区版就行 下载过后安装 安装之后写第一个代码 直接右键src-new-Java class 写入psvm 再写sout 再写输出的话就可以完成 非常方便
- Java中继承相关知识点
继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...
- tensorflow的断点续训
tensorflow的断点续训 2019-09-07 顾名思义,断点续训的意思是因为某些原因模型还没有训练完成就被中断,下一次训练可以在上一次训练的基础上继续训练而不用从头开始:这种方式对于你那些训练 ...
- [Python]Running multiprocessing
import multiprocessing as mp import time def name_and_time(name,num): print(f"Hello {name}, cur ...
- Hive不能载入本地数据:FAILED: SemanticException Line 1:17 Invalid path
1.问题描述: (1)问题示例: hive (test)> create table t_textfile(c1 string,c2 int,c3 string,c4 string) ...
- 解决com.alibaba.excel.exception.ExcelGenerateException: Can not close IO.
我在使用easycel导出到zip包中时,出现了这个问题.各种文件输出时产生的问题其实大同小异 查看了一些网上的文章,还有github上关于此bug的issue,总算是理清并解决了. 解决方法一 主要 ...
- WSL安装Ubuntu 22.04 (2)
1.安装系统环境 1.1.设置软件包源为国内镜像 参考:Ubuntu更换国内镜像源 - 知乎 1.2.更新系统软件包 sudo apt-get update && sudo apt-g ...