From cc771d5196411a826f191478564926dd4dcc657f Mon Sep 17 00:00:00 2001 From: suti7yk5032 Date: Fri, 6 Sep 2024 02:39:40 +0900 Subject: [PATCH] =?UTF-8?q?get=5Fusb=5Fdevices=E3=81=8Cclass=E5=86=85?= =?UTF-8?q?=E3=81=A7=E5=8B=95=E4=BD=9C=E3=81=97=E3=81=AA=E3=81=8B=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=83=90=E3=82=B0=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dislocker_client.py | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/dislocker_client.py b/dislocker_client.py index 48ec257..faf41cd 100644 --- a/dislocker_client.py +++ b/dislocker_client.py @@ -16,6 +16,7 @@ import shutil import uuid import time import win32com.client +import pythoncom app_name = "Dislocker" dislocker_dir = os.path.dirname(os.path.abspath(sys.argv[0])) @@ -316,23 +317,29 @@ class Lock(customtkinter.CTkToplevel): self.signout_button.configure(state="normal", fg_color="#3c8dd0") def get_usb_devices(self): - str_computer = "." - obj_wmi_service = win32com.client.Dispatch("WbemScripting.SWbemLocator") - obj_swem_services = obj_wmi_service.ConnectServer(str_computer, "root\\cimv2") - col_items = obj_swem_services.ExecQuery("Select * from Win32_PnPEntity where PNPDeviceID like 'USB%'") + try: + pythoncom.CoInitialize() + str_computer = "." + obj_wmi_service = win32com.client.Dispatch("WbemScripting.SWbemLocator") + obj_swem_services = obj_wmi_service.ConnectServer(str_computer, "root\\cimv2") + col_items = obj_swem_services.ExecQuery("Select * from Win32_PnPEntity where PNPDeviceID like 'USB%'") - devices = [] - for obj_item in col_items: - devices.append({ - "device_id": obj_item.DeviceID, - "PNPDeviceID": obj_item.PNPDeviceID, - "Description": obj_item.Description, - "device_name": obj_item.Name, - "Manufacturer": obj_item.Manufacturer, - "Service": obj_item.Service - }) + devices = [] + for obj_item in col_items: + devices.append({ + "device_id": obj_item.DeviceID, + "PNPDeviceID": obj_item.PNPDeviceID, + "Description": obj_item.Description, + "device_name": obj_item.Name, + "Manufacturer": obj_item.Manufacturer, + "Service": obj_item.Service + }) - return devices + pythoncom.CoUninitialize() + return devices + except pythoncom.com_error as e: + print("Error:", e) + return [] def auth(self): self.button_disable()