#NoTrayIcon
#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\deepin.ico
#AutoIt3Wrapper_Allow_Decompile=n
#AutoIt3Wrapper_Res_Comment=Windows 2000
#AutoIt3Wrapper_Res_Description=Windows 2000
#AutoIt3Wrapper_Res_Fileversion=1.0.0.18
#AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
#AutoIt3Wrapper_Tidy_Stop_OnError=n
#EndRegion ;**** 参数创建于 AutoIt3Wrapper_GUI ****
If $CmdLine[0] >0 Then
If $CmdLine[1] == 'runonce' Then
RegDelete("HKLM\SoftWare\Microsoft\Windows\CurrentVersion\Run","Synchronization Manager")
RegDelete("HKLM\SoftWare\Microsoft\Windows\CurrentVersion\Run","Internat")
Run(@ComSpec & " /c " & "del /f /s /q %systemroot%\*.tmp", "", @SW_HIDE)
Run(@ComSpec & " /c " & "del /f /s /q %SystemRoot%\temp\*.*", "", @SW_HIDE)
Run(@ComSpec & " /c " & "for %i in (c d e f g h i j k l m n o p q r s t u v w x y z) do del /a /f /q %i:\autorun.inf", "", @SW_HIDE)
Exit
EndIf
EndIf
;$Edit1 = GUICtrlCreateEdit("", 16, 128, 177, 57,$WS_VSCROLL)
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=d:\d2k\2kt\2kt.kxf
$AForm1_1 = GUICreate("Windows 2000 设置工具", 489, 324, 215, 151)
$Edit1 = GUICtrlCreateEdit("", 208, 16, 265, 265,$WS_VSCROLL)
GUICtrlSetData(-1, "正在检查当前状态...OK.")
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$bok = GUICtrlCreateButton("确定", 368, 288, 51, 25, 0)
$bcanc = GUICtrlCreateButton("取消", 423, 288, 51, 25, 0)
$Group1 = GUICtrlCreateGroup("请选择你需要的优化模式", 16, 16, 177, 105)
GUICtrlSetFont(-1, 10, 800, 0, "宋体")
GUICtrlSetColor(-1, 0x000080)
$Radio1 = GUICtrlCreateRadio("家用/游戏", 28, 38, 120, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$Radio2 = GUICtrlCreateRadio("Windows 系统默认", 28, 57, 145, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$Radio3 = GUICtrlCreateRadio("最精简模式", 28, 76, 120, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
GUICtrlSetState(-1, $GUI_CHECKED)
$Radio4 = GUICtrlCreateRadio("办公", 28, 95, 120, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup(" 优化细节 ", 16, 128, 177, 185)
GUICtrlSetFont(-1, 10, 800, 0, "宋体")
GUICtrlSetColor(-1, 0x000080)
$cbspooler = GUICtrlCreateCheckbox("开启打印缓存", 28, 150, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$cblanman = GUICtrlCreateCheckbox("开启局域网服务", 28, 169, 153, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$cbime = GUICtrlCreateCheckbox("使用输入法托盘显示", 28, 188, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$cbie = GUICtrlCreateCheckbox("解除 IE 直接运行限制", 28, 207, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$cbdns = GUICtrlCreateCheckbox("启用 DNS Cache 服务", 28, 226, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$cbdhcp = GUICtrlCreateCheckbox("启用 DHCP 客户端", 28, 245, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$cbwua = GUICtrlCreateCheckbox("启用自动升级", 28, 264, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
$CBautoRun = GUICtrlCreateCheckbox("启用自动播放", 28, 283, 161, 17)
GUICtrlSetFont(-1, 10, 400, 0, "宋体")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label1 = GUICtrlCreateLabel("bBS.dEEPIN.oRG v1.12", 208, 300, 144, 17)
GUICtrlSetFont(-1, 10, 400, 0, "新宋体")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;get State
;Addlog("")
If ProcessExists ("spoolsv.exe")>0 Then
; Addlog("打印缓存已开启。")
GUICtrlSetState ($CBspooler,$GUI_CHECKED)
Else
; Addlog("打印缓存未开启。")
EndIf
Addlog("只使用一种输入法的推荐关闭托盘指示。")
If ProcessExists ("internat.exe")>0 Then
; Addlog("输入法托盘已开启。")
GUICtrlSetState ($CBime,$GUI_CHECKED)
Else
; Addlog("输入法托盘未开启。")
EndIf
Dim $CBV
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Radio1
GUICtrlSetState ($cbdns, $GUI_CHECKED)
GUICtrlSetState ($cbdhcp, $GUI_UNCHECKED)
GUICtrlSetState ($CBautorun, $GUI_UNCHECKED)
GUICtrlSetState ($cbspooler, $GUI_UNCHECKED)
GUICtrlSetState ($cblanman, $GUI_UNCHECKED)
GUICtrlSetState ($cbie, $GUI_UNCHECKED)
GUICtrlSetState ($cbwua, $GUI_UNCHECKED)
GUICtrlSetState ($cbime, $GUI_UNCHECKED)
Case $Radio2
GUICtrlSetState ($cbdns, $GUI_CHECKED)
GUICtrlSetState ($cbdhcp, $GUI_CHECKED)
GUICtrlSetState ($CBautorun, $GUI_CHECKED)
GUICtrlSetState ($cbspooler, $GUI_CHECKED)
GUICtrlSetState ($cblanman, $GUI_CHECKED)
GUICtrlSetState ($cbie, $GUI_CHECKED)
GUICtrlSetState ($cbwua, $GUI_CHECKED)
GUICtrlSetState ($cbime, $GUI_CHECKED)
Case $Radio3
GUICtrlSetState ($cbdns, $GUI_UNCHECKED)
GUICtrlSetState ($cbdhcp, $GUI_UNCHECKED)
GUICtrlSetState ($CBautorun, $GUI_UNCHECKED)
GUICtrlSetState ($cbspooler, $GUI_UNCHECKED)
GUICtrlSetState ($cblanman, $GUI_UNCHECKED)
GUICtrlSetState ($cbie, $GUI_UNCHECKED)
GUICtrlSetState ($cbwua, $GUI_UNCHECKED)
GUICtrlSetState ($cbime, $GUI_UNCHECKED)
Case $Radio4
GUICtrlSetState ($cbdns, $GUI_UNCHECKED)
GUICtrlSetState ($cbdhcp, $GUI_CHECKED)
GUICtrlSetState ($CBautorun, $GUI_UNCHECKED)
GUICtrlSetState ($cbspooler, $GUI_CHECKED)
GUICtrlSetState ($cblanman, $GUI_CHECKED)
GUICtrlSetState ($cbie, $GUI_UNCHECKED)
GUICtrlSetState ($cbwua, $GUI_UNCHECKED)
GUICtrlSetState ($cbime, $GUI_UNCHECKED)
Case $bok
GUICtrlSetState($bok,$GUI_DISABLE)
GUICtrlSetState($bcanc,$GUI_DISABLE)
If GUICtrlRead ($CBspooler) == $GUI_CHECKED Then
Addlog("正在开始打印服务...")
RunWait(@ComSpec & " /c " & 'sc config spooler start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start spooler', "", @SW_HIDE)
Addlog("完成。")
Else
Addlog("正在禁用打印服务...")
RunWait(@ComSpec & " /c " & 'net stop spooler', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config spooler start= disabled', "", @SW_HIDE)
Addlog("完成。")
EndIf
If GUICtrlRead ($CBautorun) == $GUI_CHECKED Then
Addlog("正在允许自动播放...")
RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDriveTypeAutoRun")
RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "CDRAutoRun")
Addlog("完成。")
Else
Addlog("正在禁用自动播放...")
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDriveTypeAutoRun", "REG_DWORD", "0xbd000000" )
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDriveTypeAutoRun", "REG_DWORD", "0x000000FF" )
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "CDRAutoRun", "REG_DWORD", "0x00000000" )
Addlog("完成。")
EndIf
If GUICtrlRead ($CBlanman) == $GUI_CHECKED Then
Addlog("正在开始局域网共享服务...")
RunWait(@ComSpec & " /c " & 'sc config lanmanWorkstation start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start lanmanWorkstation', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config lanmanServer start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start lanmanServer', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config Browser start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start Browser', "", @SW_HIDE)
Addlog("完成。")
Else
Addlog("正在禁用局域网共享服务...")
RunWait(@ComSpec & " /c " & 'net stop Browser', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config Browser start= disabled', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net stop lanmanWorkstation', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config lanmanWorkstation start= disabled', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net stop lanmanServer', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config lanmanServer start= disabled', "", @SW_HIDE)
Addlog("完成。")
EndIf
dim $dar
$dar="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
If GUICtrlRead ($CBime) == $GUI_CHECKED Then
Addlog("正在启用输入法托盘...")
; RegDelete($dar, "DisallowRun")
RegDelete($dar&"\DisallowRun", "1")
RegDelete($dar&"\DisallowRun", "2")
RegDelete($dar&"\DisallowRun", "3")
Run(@SystemDir&"\internat.exe")
Else
Addlog("正在禁用输入法托盘...")
ProcessClose ("internat.exe")
ProcessClose ("ctfmon.exe")
ProcessClose ("comine.exe")
RegWrite($dar, "DisallowRun", "REG_DWORD", "1" )
RegWrite($dar&"\DisallowRun", "1", "REG_SZ", "conime.exe" )
RegWrite($dar&"\DisallowRun", "2", "REG_SZ", "ctfmon.exe" )
RegWrite($dar&"\DisallowRun", "3", "REG_SZ", "internat.exe" )
Addlog("完成。")
EndIf
If GUICtrlRead ($CBie) == $GUI_CHECKED Then
Addlog("正在解除IE安全限制...")
RegDelete($dar&"\DisallowRun", "5")
Addlog("完成。")
Else
RegWrite($dar, "DisallowRun", "REG_DWORD", "1" )
RegWrite($dar&"\DisallowRun", "5", "REG_SZ", "iexplore.exe" )
EndIf
If GUICtrlRead ($cbdns) == $GUI_CHECKED Then
Addlog("启用 DNS Cache 服务...")
RunWait(@ComSpec & " /c " & 'sc config dnscache start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start dnscache', "", @SW_HIDE)
Addlog("完成。")
Else
Addlog("停止并禁用 DNS Cache 服务...")
RunWait(@ComSpec & " /c " & 'net stop dnscache', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config dnscache start= disabled', "", @SW_HIDE)
Addlog("完成。")
EndIf
If GUICtrlRead ($cbdhcp) == $GUI_CHECKED Then
Addlog("启用 DHCP 客户端...")
RunWait(@ComSpec & " /c " & 'sc config dhcp start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start dhcp', "", @SW_HIDE)
Addlog("完成。")
Else
Addlog("停止并禁用 DHCP 客户端...")
RunWait(@ComSpec & " /c " & 'net stop dhcp', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config dhcp start= disabled', "", @SW_HIDE)
Addlog("完成。")
EndIf
If GUICtrlRead ($cbwua) == $GUI_CHECKED Then
Addlog("启用 Windows 自动升级...")
RunWait(@ComSpec & " /c " & 'sc config bits start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start bits', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config wuauserv start= auto', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net start wuauserv', "", @SW_HIDE)
Addlog("完成。")
Else
Addlog("停止并禁用 Windows 自动升级...")
RunWait(@ComSpec & " /c " & 'net stop wuauserv', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config wuauserv start= disabled', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'net stop bits', "", @SW_HIDE)
RunWait(@ComSpec & " /c " & 'sc config bits start= disabled', "", @SW_HIDE)
Addlog("完成。")
EndIf
Exit
Case $BCANC
Exit
EndSwitch
WEnd
Func Addlog ($lcStr)
GUICtrlSetData($Edit1, GUICtrlRead ($Edit1)&@CRLF&$lcStr)
EndFunc
这个工具其实不仅可以应用于2000,XP也是可以……故至少标题是可以改一改。 !discuzcode_quote!:
Run(@ComSpec & " /c " & "del /f /s /q %systemroot%\*.tmp", "", @SW_HIDE)
Run(@ComSpec & " /c " & "del /f /s /q %SystemRoot%\temp\*.*", "", @SW_HIDE)
Run(@ComSpec & " /c " & "for %i in (c d e f g h i j k l m n o p q r s t u v w x y z) do del /a /f /q %i:\autorun.inf", "", @SW_HIDE)这几行,主要有两个用户,一是删除系统垃圾,二是清除Autorun病毒。但可惜都略嫌不足,首先系统垃圾清除并不完全,在这里我给你提供批处理代码,你应该有能力自己改进: !discuzcode_quote!:
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
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\*.*"然后关于清除AutoRun病毒一项,大体的思路是正确,这也是网上最流行的写法,无奈有两处不足:1.采取从C盘一直删到Z盘的做法,其实最佳方法最好是先检测有哪些分区,比如只有CDE的话,可以检测到E盘为止。2.其实既然要清除Autorun病毒,还应该清除一些病毒的残余文件,比如:_desktop.ini、desktop_.ini……等等
我的意思是,清除病毒功能要不就去掉,既然已经考虑进来了,就尽可能做得完美一些。
同时,说明一下,其实这个程序有很多地方可以直接用AutoIt来写,而不改通过运行DOS的方式来实现。
不过作为初学者来说,已经是个很不错的作品了,故给予加分奖励。并期待更佳作品!












