禁用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功能的更多相关文章

  1. Android关闭USB的ADB调试和文件传输功能(禁用USB)【转】

    本文转载自:https://blog.csdn.net/jun4331247/article/details/51201825 通过设置系统属性(System Property)[persist.sy ...

  2. Python编程实现USB转RS485串口通信

    ---作者吴疆,未经允许,严禁转载,违权必究--- ---欢迎指正,需要源码和文件可站内私信联系--- -----------点击此处链接至博客园原文----------- 功能说明:Python编程 ...

  3. 通过暗码去打开/关闭usb debug开关

    通过暗码去打开/关闭usb debug开关 通过暗码去打开/关闭usb debug开关1. Description2. Analysis3. Solution4. Summary 1. Descrip ...

  4. 手机支持USB功能、驱动文件对应关系

    手机支持USB功能: 1.UMS(USB MASS Stronge) : 连接PC作为存储盘使用 2.ADB : 用于调试 3.MTP :连接PC作为存储盘使用(win XP需要安装WMP10 以上 ...

  5. iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)

    一.前言 iOS开发更新APP我觉得是比较坑的就是审核时间比较长,审核比较严,对于刚入行的小伙伴来说,雷区比较多:所以热更新是比较重要的: 大家也许会发现我们常用的QQ现在下来也就一百多兆,但是用了几 ...

  6. Javascript动态调整文章的行距、字体、颜色,及打印页面和关闭窗口功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. win7打开或关闭windows功能 提示“出现错误,并非所有的功能被更改”,管理员权限惹的祸

    2013-07-25 18:12:06 最近要用到windows的telnet功能,本来是很简单的事情,因为管理员权限的问题,花了不少时间,才发现是管理员权限惹的祸,更滑稽的是,自己一直以来都不是管理 ...

  8. USB系列之五:用汇编实现的一些USB功能

    前面的USB系列一至四,实现了我们需要的一些USB功能,但都是用C语言的32位代码,之后我们插进了三篇关于DOS下设备驱动程序的文章,我们现在应该清楚,当我们要在DOS下写一个U盘的驱动时,最好使用汇 ...

  9. cmd命令行模式开启或关闭 windows功能 (转载)

    1,用管理员身份运行cmd. 2,运行 dism /online  /Get-Features >C:\1.txt,这样会在C盘生成一个txt文件,文件内容是功能列表,可以对照“打开或关闭win ...

  10. 在 uniGUI 中实现自动弹窗后延迟几秒关闭 — Toast 功能

    在 uniGUI 中实现自动弹窗后延迟几秒关闭 — Toast 功能. uniGUI 的客户端使用 EXTJS 6 ,本就有 Toast 功能. 但UniGui 官方没有相应的控件,我们如何使用 EX ...

随机推荐

  1. element-ui的确认消息弹框校验;$prompt校验

    this.$prompt('请输入您的姓名', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', inputPattern: /^.+$ ...

  2. anaconda的环境变量

    参考: (40条消息) Anaconda 环境变量手动设置(详细)_一夜星尘的博客-CSDN博客_anaconda环境变量手动设置

  3. 如何在Windows 10上使用VS2019 编译C

    一.安装VS 2019 首先VS官网上下载免费的VS2019 community.我们的目的是在Windows上使用该软件编译C,如下图所示,把使用C++的桌面开发打上勾 二.创建.C 项目 1.打开 ...

  4. ceph pg修复过程

    1.通过命令查看哪些pg状态不一致 ceph pg dump|grep inconsistent 2.根据输出的pg id 进行一致性检查 ceph pg scrub 1.23 instructing ...

  5. mysql创建数据库,用户,授权基操

    # 创建数据库create database test; # 创建用户并设置密码 create user 'test'@'%' identified by '123456';# 设置密码SET PAS ...

  6. flask-script的简单使用

    1.Flask-Script介绍Flask-Script的作用是可以通过命令行的形式来操作Flask.Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定 ...

  7. OpenCV图像拼接函数

    图像拼接函数 第一种方法:通过遍历图像,将待拼接的图像每个像素赋值给输出图像 //图像拼接函数 //imageVector 输入图像数组 //outputImage 输出图像 //colCount_ ...

  8. 自动备份一个TXT文件里面的SVN库

    之前的项目都是使用SVN进行代码管理,万一SVN挂了,,,项目全部爆炸,,,所以定时备份还是有必要的,,,虽然现在都不用SVN了,,,记录一下自己的备份方法 --------------------- ...

  9. VBA中的结构体

    结构体必须放在"模块"中: Type Org tag As String person As New Collection End Type 使用: Sub testType() ...

  10. C++ STL的简单应用(vector容器专题)

    #include <iostream> #include <string> #include <stdlib.h> #include <vector> ...