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 ...
随机推荐
- LINUX配置固定IP以及DNS
配置固定ip #vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=no ...
- 2022/7/28 第七组陈美娜 API类
API:Application Program Interface应用程序接口 JDK给我们提供的一些已经写好的类,可以直接调方法来解决问题 类的方法在宏观上都可以称为接口 接口:1.interfac ...
- 2月26日Android开发学习
1.App运行日志 Android采用Log工具打印日志,他讲各类日志划分为五个等级 (1)Log.e:表示错误信息,比如可能导致程序崩溃的异常. (2)Log.w:表示警告信息. (3)Log.i: ...
- Vivado工程常见报错及解决办法
1. 在进行自定义 IP 后,将自定义 IP 添加到当前的工程时,出现如下报错: [IP_Flow 19-167] Failed to deliver one or more file(s). [IP ...
- DEM高程数据下载资源
最近发现了几个比较好的DEM高程数据免费下载资源,遂总结一下. clouldRF(https://cloudrf.com/terrain%20data)官方网站有说明其支持的地形数据来源,主要包括如下 ...
- C# 连接EXCEL和ACCESS字符串2003及2007版字符串说明
97-2003版本 EXCEL Provider=Microsoft.Jet.OLEDB.4.0;Data Source=文件位置;ExtendedProperties=Excel 8.0;HDR=Y ...
- Linux中/etc目录下passwd和shadow文件
/etc/passwd介绍 首先,通过cat /etc/passwd 来查看文件/etc/passwd中内容: root:x:0:0:root:/root:/bin/bash daemon:x:1:1 ...
- JMeter控制器遍历一组数据
1.获取数据列表,通过JSON提取器提取所有name信息 获取到的name总条数 = name_matchNr = 4 2.通过添加控制器遍历一组数据 2.1 方式一:添加循环控制器 循环控制次数为 ...
- heiamJava16IO流
Java I/O流 按流的方向分 输入输出流 I表示intput(输入),是数据从硬盘文件读入到内存的过程,称之输入,负责读. O表示output(输出),是内存程序的数据从内存到写出硬盘文件的过程, ...
- 解决IDEA输出中文乱码问题
问题描述(中国人加油,真痛苦) 无法正确输出中文字符:(请正确分辨自己是哪一种乱码问题!) 解决方法 1.最容易想到 File -> Settings -> File Encodings下 ...