想制作一个清理系统垃圾工具但不会连接进度条
本帖最后由 lzlcn 于 2011-3-17 11:58 编辑想制作一个清理系统垃圾工具但不会连接进度条,但怎么连接进度条呢。并在右下角提示处时时显示删除的内容最佳!#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 352, 120, 267, 300)
$Button1 = GUICtrlCreateButton("清理系统垃圾文件", 56, 16, 123, 33)
$Button2 = GUICtrlCreateButton("退出", 224, 16, 81, 33)
$Progress1 = GUICtrlCreateProgress(8, 72, 337, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
ToolTip(@CR & '正在清除系统垃圾,请稍候...' & @CR, @DesktopWidth - 250, @DesktopHeight - 100)
RunWait(@ComSpec & " /c " & "del /f /s /q %systemdrive%\*.tmp &del /f /s /q %systemdrive%\*._mp &del /f /s /q %systemdrive%\*.log &del /f /s /q %systemdrive%\*.gid &del /f /s /q %systemdrive%\*.chk &del /f /s /q %systemdrive%\*.old &del /f /s /q %systemdrive%\recycled\*.* &del /f /s /q %windir%\*.bak &del /f /s /q %windir%\prefetch\*.* rd /s /q %windir%\temp md %windir%\temp &del /f /q %userprofile%\recent\*.* &del /f /s /q %userprofile%\Local Settings\Temporary Internet Files\*.* &del /f /s /q %userprofile%\Local Settings\Temp\*.* &del /f /s /q %userprofile%\recent\*.*", "", @SW_HIDE)
MsgBox(64, "提示", "清除完毕!", 5)
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
Exit
EndSwitch
WEnd 本帖最后由 guang19831217 于 2011-3-17 12:31 编辑
帖子11 精华0 积分16 威望0 点 金钱1007 块
大大你好厉害哦。
支持下。偶也想知道cmd怎么精确做到。 学习下 O(∩_∩)O哈哈~ 我在虚机里,不方便,没有au3环境, 实现方法这样成么?
你用run 这个垃圾清理,返回一下PID 然后: do until 来更新进度条, 直到这个pid运行结束没有了...
会了吧? 回复 4# boyhong
不好意思,还是新手,不懂pid是什么。还望能提供下代码 顶一下,...也想知道 不会进度条,看看,学习学习。。 这个要学习学习``` 6#的办法也是可以的 回复 6# sliqi
确实是一个方法。赞一个 贴一个脚本,花钱买的
希望对你有帮助
还有一个 漏掉了 补上
这是论坛中找到的 希望有帮助:-)Dim $wizard,$landy,$size,$down;定义变量
$wizard="http://www.duote.com/server/getfile.php?uri=http://41.duote.org/znabc5.23.exe&id=907";定义下载地址
$landy="c:\智能Abc.exe";定义下载存入的地址
$down=InetGet($wizard , $landy,1,1 );开始下载,后面的两个 1 请参考帮助
ProgressOn("智能ABC","正在下载,请稍后....");创建进度条
While 1 ;设置进度百分比的循环体
If InetGetInfo($down,2) = True Then ExitLoop;如果下载完成,就会为真,就会退出这个循环
$BFB = Round(InetGetInfo($down,0) / InetGetInfo($down,1),2) * 100;计算出百分比
TrayTip(InetGetInfo($down,0),InetGetInfo($down,1),10);这里是用来调试的,可以去除
ProgressSet($BFB,'已经下载了: ' & $BFB & '%');显示出来
Sleep(100)
WEnd;循环体结束;当然要在条件不成立的情况下。
ProgressSet(100,"下载完成了!");最后这里设置成下载完成,不设置也可, 因为用户只会看到一个一闪而过的画面
ProgressOff();关闭进度条
If MsgBox(32+4,'提示','已经下载完成了, 是否打开文件 ?') = 6 Then;如果用户点了 “是” 得到的值就会是6,条件成立,就会执行下面的
Run($landy);运行下载过来的文件
EndIf 学习了,楼主 感谢fhefh...............
页:
[1]