找回密码
 加入
搜索
查看: 4129|回复: 8

[AU3基础] [已解决]请大家帮忙修改完善精简下“XP系统服务优化”的代码

  [复制链接]
发表于 2010-4-30 01:40:05 | 显示全部楼层 |阅读模式
本帖最后由 jackass110 于 2010-5-6 18:46 编辑

看了论坛几位前辈的优化代码,感觉对与优化似乎不是太完善,比如,安装了暴风或者显卡之后生成的服务并没有操作到,
于是自己参考前辈们的思路,自己写了个,
思路是,获取本机的服务列表到数组,然后给定自动及手动的服务项到数组并分别设置启动类型,然后通过数组比较,得到本机除了给定的服务之外的所有服务并设置为禁用,

因为自己是新手,代码是东拼西凑得来的,请大家帮忙找下错误并优化精简下代码,,,,(不考虑具体优化的服务问题,只考虑代码的工作过程,)

不胜感激。。。
#include <ServiceControl.au3>
#include <Array.au3>
$servlist = _ServListInstalled()
$Auto_list = _ArrayCreate("AudioSrv", "CryptSvc", "DcomLaunch", "dmserver", "Dnscache", "Eventlog", "lanmanworkstation", "Netman", "PlugPlay", "PolicyAgent", "ProtectedStorage", "RpcSs", "stisvc", "winmgmt")
$Demand_list = _ArrayCreate("MSIServer", "dmadmin")
;设置自动启动的服务...
For $i In $Auto_list
        If _ServiceExists(@ComputerName, $i) = 1 Then
                _SerSetState($i, 1)
                _ServStart($i)
        EndIf
Next
;设置手动启动的服务...
For $i In $Demand_list
        If _ServiceExists(@ComputerName, $i) = 1 Then
                _SerSetState($i, 2)
                _ServStop($i)
        EndIf
Next
;处理其他服务
 ;获取本机服务列表,并删除自动,手动的服务...
For $i=0 To UBound($Auto_list)-1
$iIndex = _ArraySearch($servlist,$Auto_list[$i],0,0,0,1)
        if $iIndex <> -1 Then
                 _ArrayDelete($servlist, $iIndex)
        EndIf
Next
For $i=0 To UBound($Demand_list)-1
$iIndex = _ArraySearch($servlist,$Demand_list[$i],0,0,0,1)
        if $iIndex <> -1 Then
                 _ArrayDelete($servlist, $iIndex)
        EndIf
Next
;设置其他服务...
For $i In $servlist
                _SerSetState($i, 3)
                _ServStop($i)
        EndIf
Next
MsgBox(0,"","服务设置完成!")
发表于 2010-4-30 07:57:18 | 显示全部楼层
只是给出了一个框架.
发表于 2010-5-3 09:37:42 | 显示全部楼层
本帖最后由 netegg 于 2010-5-3 09:42 编辑

对非系统进程,这个已经把数组指定了,没多大用,枚举注册表才行,或者用userinclude里的sevicecontrol函数库里的enum来获取服务列表
 楼主| 发表于 2010-5-5 18:57:26 | 显示全部楼层
$servlist = _ServListInstalled() 
这个不就是获取本机的服务列表么?
发表于 2010-5-5 19:04:56 | 显示全部楼层
回复 4# jackass110

wmi服务要是关了呢
 楼主| 发表于 2010-5-5 19:23:56 | 显示全部楼层
回复 5# netegg


    哦,这点没考虑到,,如果先把wmi运行的话就没什么问题了吧?
发表于 2010-5-5 20:31:12 | 显示全部楼层
回复 6# jackass110
这我就不知道了,我一般优化xp服务的时候,先把wmi卸了,没什么大用
发表于 2012-7-22 23:45:57 | 显示全部楼层
回复 3# netegg


    请问元老这个enum怎么用来着,给个例子吧。。。也在研究中
发表于 2012-7-23 18:26:14 | 显示全部楼层
_Service_Enum(32)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-30 05:31 , Processed in 0.082373 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表