Skip to content

Commit 7535ded

Browse files
Add files via upload
1 parent 6243616 commit 7535ded

File tree

13 files changed

+619
-0
lines changed

13 files changed

+619
-0
lines changed

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Windows Cleaner——专治C盘爆红及各种不服!
2+
## 运行截图
3+
![show](readme/s.jpg)
4+
## 使用方法
5+
### 下载安装包
6+
7+
[蓝奏云网盘](https://wwt.lanzn.com/i2dEZ1onczzg)下载Windows Cleaner(amd64)的安装包。
8+
9+
密码:1djs
10+
11+
### 安装
12+
一路Next即可,如果想以后方便打开可以勾选上`创建桌面快捷方式`选项。
13+
14+
### 从源代码构建
15+
16+
- Python 3.8
17+
18+
[Bilibili:阳刚の少年](https://space.bilibili.com/1847808902?spm_id_from=333.1007.0.0)
19+
20+
[<img src="readme/d.png" alt="Example Image" style="width: 200px;"/>](readme/develop.jpg)

font/DingTalk_JinBuTi_Regular.ttf

2.03 MB
Binary file not shown.

font/pmzd.ttf

3.09 MB
Binary file not shown.

main.py

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
import sys
2+
from PyQt6.QtWidgets import QApplication, QMainWindow, QMessageBox
3+
from ui import Ui_MainWindow
4+
from PyQt6.QtCore import Qt,QPoint
5+
from PyQt6.QtGui import QMouseEvent, QIcon
6+
import os
7+
import shutil
8+
import psutil
9+
10+
class Cleaner(QMainWindow, Ui_MainWindow):
11+
def __init__(self):
12+
super().__init__()
13+
# 创建UI对象
14+
self.ui = Ui_MainWindow()
15+
# 设置UI
16+
self.ui.setupUi(self)
17+
self.setWindowFlag(Qt.WindowType.FramelessWindowHint, True)
18+
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground, True)
19+
#self.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint, True)
20+
self.setMouseTracking(True)
21+
self.draggable = False
22+
self.offset = QPoint()
23+
self.setWindowTitle("Windows Cleaner")
24+
self.ui.pushButton.clicked.connect(self.boost)
25+
self.ui.pushButton_2.clicked.connect(self.clean)
26+
self.flag = False
27+
28+
def mousePressEvent(self, event: QMouseEvent):
29+
if event.button() == Qt.MouseButton.LeftButton:
30+
self.draggable = True
31+
self.offset = event.pos()
32+
33+
def mouseMoveEvent(self, event: QMouseEvent):
34+
if self.draggable:
35+
self.move(self.mapToGlobal(event.pos() - self.offset))
36+
37+
def mouseReleaseEvent(self, event: QMouseEvent):
38+
if event.button() == Qt.MouseButton.LeftButton:
39+
self.draggable = False
40+
41+
def get_v(self):
42+
# 获取C盘的使用情况
43+
usage = psutil.disk_usage('C:\\') # 请注意在Windows上使用双反斜杠来表示路径
44+
45+
# 获取已用空间(以MB为单位)
46+
used_space_mb = round(usage.used / (1024 ** 2), 2) # 转换为MB
47+
print(f"已用空间: {used_space_mb} MB")
48+
return used_space_mb
49+
50+
def boost(self):
51+
print("优化加速")
52+
self.ui.label_3.setText("优化加速中······")
53+
v0 = self.get_v()
54+
self.boost_prefetch('C:\\Windows\\Prefetch')
55+
self.clean_temp_folder()
56+
v1 = self.get_v()
57+
self.ui.label_3.setText(f"加速完成!\n清理出{format(v0 - v1,'.2f')}MB空间")
58+
59+
def boost_prefetch(self, folder_path):
60+
# 获取管理员权限
61+
if not os.access(folder_path, os.W_OK):
62+
raise PermissionError("You don't have permission to delete files in this folder.")
63+
64+
# 遍历文件夹并删除文件
65+
for filename in os.listdir(folder_path):
66+
file_path = os.path.join(folder_path, filename)
67+
try:
68+
if os.path.isfile(file_path):
69+
os.remove(file_path)
70+
elif os.path.isdir(file_path):
71+
shutil.rmtree(file_path)
72+
print(f"Deleted: {file_path}")
73+
except Exception as e:
74+
print(f"Failed to delete: {file_path}, Error: {e}")
75+
76+
def clean_temp_folder(self):
77+
temp_folder = os.environ.get('TEMP')
78+
for root, dirs, files in os.walk(temp_folder):
79+
for file in files:
80+
try:
81+
os.remove(os.path.join(root, file))
82+
print("Delete successfully")
83+
except Exception as e:
84+
print(f"Failed to delete {os.path.join(root, file)}: {e}")
85+
print("Temporary files cleaned successfully")
86+
87+
def clean(self):
88+
print("深度清理")
89+
self.ui.label_3.setText("深度清理中······")
90+
v0 = self.get_v()
91+
self.boost_prefetch('C:\\Windows\\SoftwareDistribution\\Download')
92+
self.boost_prefetch('C:\\Windows\\Prefetch')
93+
self.clean_temp_folder()
94+
v1 = self.get_v()
95+
self.ui.label_3.setText(f"加速完成!\n清理出{format(v0 - v1, '.2f')}MB空间")
96+
# 执行磁盘清理命令
97+
messageBox = QMessageBox()
98+
#messageBox.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint) # 设置置顶
99+
messageBox.setWindowTitle('是否继续清理?')
100+
messageBox.setWindowIcon(QIcon('resource/clean.png'))
101+
messageBox.setText(f"是否使用'磁盘清理'工具继续清理?")
102+
messageBox.setStandardButtons(QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel)
103+
response = messageBox.exec()
104+
if response == QMessageBox.StandardButton.Ok:
105+
print("You clicked OK")
106+
try:
107+
os.popen("cleanmgr")
108+
except Exception as e:
109+
print(f"error{e}")
110+
else:
111+
print("You clicked Cancel")
112+
113+
messageBox = QMessageBox()
114+
#messageBox.setWindowFlag(Qt.WindowType.WindowStaysOnTopHint) # 设置置顶
115+
messageBox.setWindowTitle('是否继续清理?')
116+
messageBox.setWindowIcon(QIcon('resource/clean.png'))
117+
messageBox.setText(f"是否从'存储'删除临时文件?\n注意:此操作可能并不适用于所有Windows版本。")
118+
messageBox.setStandardButtons(QMessageBox.StandardButton.Ok | QMessageBox.StandardButton.Cancel)
119+
response = messageBox.exec()
120+
if response == QMessageBox.StandardButton.Ok:
121+
print("You clicked OK")
122+
try:
123+
os.system('start ms-settings:storagesense')
124+
except Exception as e:
125+
print(f"error{e}")
126+
else:
127+
print("You clicked Cancel")
128+
129+
130+
if __name__ == '__main__':
131+
app = QApplication(sys.argv)
132+
form = Cleaner()
133+
form.show()
134+
sys.exit(app.exec())

readme/d.png

3.49 KB
Loading

readme/develop.jpg

22.3 KB
Loading

readme/s.jpg

86.8 KB
Loading

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PyQt6==6.4.2
2+
pyqt6-tools==6.4.2.3.3
3+
psutil

resource/booster.png

7.9 KB
Loading

resource/clean.png

8.8 KB
Loading

0 commit comments

Comments
 (0)