【个人云盘连接助手】解决多个用户账号无法同时映射到本地磁盘问题

本文主要是介绍【个人云盘连接助手】解决多个用户账号无法同时映射到本地磁盘问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题

家里买了个联想个人云盘,但是使用SAMBA映射到windows本地磁盘时,每次只能连接到一个账户上,于是想着写个小工具,方便切换多个用户账户,自动映射到本地磁盘

开发简介

开发语言:python
主要实现功能:

  • 通过配置文件配置要连接的账户信息
  • 选择不同账户时能够自动连接上并映射到本地磁盘

相关界面

主界面:
在这里插入图片描述
配置文件:
在这里插入图片描述

主要源码

net_store_switch.py

import os
import sys
# 导入QT,其中包含一些常量,例如颜色等
from functools import partialfrom PyQt5 import QtCore, QtWidgets
# 使用调色板等
from PyQt5.QtGui import QIcon
# 导入常用组件
from PyQt5.QtWidgets import QApplication, QMainWindowimport NetStoreSwitchWindow
import tools.system_tool as system_tool
from tools import file_tool# pyinstaller -F -i favicon.ico -w net_store_switch.py -n 联想个人云盘连接助手
class MainWindow(QMainWindow, NetStoreSwitchWindow.Ui_Dialog):def __init__(self, parent=None):super().__init__(parent)self.setupUi(self)start_top = -10for index, user_info in enumerate(user_list):start_top += 50user = user_info['user']password = user_info['password']name = user_info['name']globals()[f'pushButton{index}'] = QtWidgets.QPushButton(self)globals()[f'pushButton{index}'].setGeometry(QtCore.QRect(20, start_top, 261, 41))globals()[f'pushButton{index}'].setObjectName(f'pushButton{index}')globals()[f'pushButton{index}'].setText(f'映射[{name}]的云盘到[{disk_flag}]盘')globals()[f'pushButton{index}'].clicked.connect(partial(self.button_clicked, user_info))start_top += 10self.setMinimumSize(QtCore.QSize(303, 46 + start_top))self.setMaximumSize(QtCore.QSize(303, 46 + start_top))self.setWindowIcon(QIcon('favicon.ico'))self.setWindowTitle(title)self.statusLabel.setText(self.get_status())def button_clicked(self, user_info):sender = self.sender()print(sender.text())print(user_info)user = user_info['user']password = user_info['password']name = user_info['name']system_tool.command('net use * /delete /y')system_tool.command(rf'net use {disk_flag} \\{ip_address}\{user} /user:{user} ' + password + " /persistent:yes")os.system('start explorer')self.statusLabel.setText(f'已连接到[{name}]个人云盘')def get_status(self):status = "当前未连接到个人云盘"result = system_tool.command('net use')if system_tool.is_ok(result):data = result["data"]for user_info in user_list:user = user_info['user']name = user_info['name']if data.find(user) >= 0:status = f"已连接到[{name}]个人云盘"breakreturn statusif __name__ == '__main__':config_file_path = file_tool.root_dir('configs.json')configs = file_tool.read_configs(config_file_path)print(configs)title = configs['title']ip_address = configs['ip_address']disk_flag = configs['disk_flag']user_list = configs['user_list']app = QApplication(sys.argv)# 创建一个主窗口mainWin = MainWindow()# 显示mainWin.show()# 主循环sys.exit(app.exec_())

NetStoreSwitchWindow.py


from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Dialog(object):def setupUi(self, Dialog):Dialog.setObjectName("Dialog")Dialog.resize(303, 246)sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)sizePolicy.setHorizontalStretch(0)sizePolicy.setVerticalStretch(0)sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())Dialog.setSizePolicy(sizePolicy)Dialog.setMinimumSize(QtCore.QSize(303, 246))Dialog.setMaximumSize(QtCore.QSize(303, 246))self.statusLabel = QtWidgets.QLabel(Dialog)self.statusLabel.setGeometry(QtCore.QRect(30, 10, 241, 16))self.statusLabel.setObjectName("statusLabel")self.retranslateUi(Dialog)QtCore.QMetaObject.connectSlotsByName(Dialog)def retranslateUi(self, Dialog):_translate = QtCore.QCoreApplication.translateDialog.setWindowTitle(_translate("Dialog", "联想个人云盘助手"))self.statusLabel.setText(_translate("Dialog", "当前未连接到联想个人云盘"))

工具下载

https://download.csdn.net/download/guangdeshishe/89436365

解压后参考样例配置configs.json文件即可

这篇关于【个人云盘连接助手】解决多个用户账号无法同时映射到本地磁盘问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1066711

相关文章

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使