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()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM