禁用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就可以。

三代码如下

程序长这个样子

  1. # 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. laravel5.5 数据查询记录

    laravel5.5版本数据查询 基于 prettus/l5-repository 插件 首先安装好 prettus/l5-repository插件 配置相关参数 1 根据条件查询数据总数 publi ...

  2. testNG框架之我见

    testNG框架中会有一个xml文件夹,里面放xml文件,之后必须要在pom文件中配置 xml文件中有一个suite,在suite中可以配置parameter参数.test用例,还可以添加listen ...

  3. 2、HTTP的消息格式

    概念 HTTP协议 Hyper Text Transfer Protocol 超文本传输协议 传输协议 传输协议定义了客户端和服务器端通信时,发送数据的格式. 特点 基于TCP/IP的高级协议 默认端 ...

  4. Gridview控件的RowDataBound事件使用中 无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型

    无法将类型为"System.Web.UI.LiteralControl"的对象强制转换为类型   使用GridView的时候,相信很多朋友都遇到过"无法将类型为" ...

  5. XML_DOM4J_20200415

    package com.wy.xml; import java.io.File;import java.util.Iterator; import org.dom4j.Attribute; impor ...

  6. 禁止的回文子串 Dyslexic Gollum

    UVA1633 一个长的回文串都可以由短的回文串拓展而来,只要短的回文在左右两端增加相同的字符即可.因此,在考虑长度为NNN的01串时,只要在从长度为1向NNN拓展的过程中,保证后KKK个字符不是回文 ...

  7. leetcode用例导入数据库(PHP实现) import leetcode json case into database

    <?php // 换成你自己的json $str = '{"headers":{"student":["name","con ...

  8. vmware网络故障处理

    1.基本情况,更新vmware后发现联不上ssh了.查看物理机和虚拟机的ip,使用ping命令发现 虚拟机可以ping物理机且有网络 但是物理机是无法ping虚拟机的 2.网络的教程整理了,各有问题, ...

  9. wrangler 13 mwz 脱浆记录

    100度水泡了1个小时,一点没缩 70度水泡了3个小时,一点没缩 随后绝望,放洗衣机里洗了20min,缩了2cm 想再接再厉,放洗衣机30min,没缩 放外面晾干,看晾干以后多长吧 --------- ...

  10. store数据仓库

    项目搭建 npm init vite-app GxShujukucd GxShujukunpm inpm i vue-router npm i vuex // 这一句是这节课的关键 新建store ① ...