找回密码
 加入
搜索
查看: 2524|回复: 3

[系统综合] 一个关于远程读取ini文件并检查进程与相对应执行特定进程的脚本

[复制链接]
发表于 2011-7-9 02:41:07 | 显示全部楼层 |阅读模式
$run1=IniRead("\\192.168.1.219\ini1$\set.ini","IE","start1","0")
If ProcessExists($run1) Then
        RunWait(@ComSpec & " /c " & 'sc config toolstar  start= auto', "", @SW_HIDE)       

RunWait(@ComSpec & " /c " & 'sc stop toolStar' , "", @SW_HIDE)
RunWait("E:\系统更新\开机命令\SrvToolStar.exe  /autorun")

RunWait("E:\系统更新\开机命令\qq.exe")
   
EndIf

问题1,能否在同一个配置文件中的同一个关键字start1,中读取多个,关键词,并作出不同的判断,如,start1=qq.exe,start1=qq1.exe,start1=qq2.exe,等类似判断。如果不能实现,能有什么更加简便的方法实现吗。谢谢。
发表于 2011-7-9 03:34:51 | 显示全部楼层
本帖最后由 user3000 于 2011-7-9 03:53 编辑

按你的想法,应该把配置文件写成
”start1=qq.exe|qq1.exe|qq2.exe|MY.EXE"
代码是:
$runstr=IniRead("\\192.168.1.219\ini1$\set.ini","IE","start1","0")
$run1=stringsplit($runstr,'|')
FOR $I = 1 TO $RUN1[0]
IF ProcessExists($run1[$I]) THEN
SWITCH $RUN1[$I]
CASE 'QQ.EXE'
RunWait(@ComSpec & " /c " & 'sc config toolstar  start= auto', "", @SW_HIDE)        
RunWait(@ComSpec & " /c " & 'sc stop toolStar' , "", @SW_HIDE)
RunWait("E:\系统更新\开机命令\SrvToolStar.exe  /autorun")
RunWait("E:\系统更新\开机命令\qq.exe")
CASE 'QQ1.EXE'
;...
CASE 'QQ2.EXE'
;...
CASE 'MY.EXE'
;...
ENDSWITCH
ENDIF
NEXT
发表于 2011-7-9 03:55:39 | 显示全部楼层
汗,还好怕误导别人,把代码复制到 Scite 里看了一下,
发现有中文输入法的符号等错误。。。

我要告诉全世界的人
我爱 Scite !
我离不开 Scite 了!
发表于 2011-7-9 04:22:01 | 显示全部楼层
随便转,看到 风行者 给别人的回复,跟你的要求很是相似,所以帮你贴过来了!
希望你能更深地体会循环语法的运用!
#include <Array.au3>
While 1
        Local $PorcessArray = _SearchProcess("QQ.exe,360tray.exe,scite.exe")
        If IsArray($PorcessArray) Then _ArrayDisplay($PorcessArray)
        Sleep(1000)
WEnd
 
Func _SearchProcess($Names) ;_SearchProcess(进程列表)
        Local $Tmp[100], $s = 0
        Local $sp = StringSplit($Names, ",")
        $Array = ProcessList()
        For $i = 1 To $sp[0]
                For $j = 1 To $Array[0][0]
                        If StringLower($sp[$i]) == StringLower($Array[$j][0]) Then
                                $Tmp[$s] = $sp[$i]
                                $s += 1
                        EndIf
                Next
        Next
        If $s Then
                ReDim $Tmp[$s]
                Return $Tmp
        Else
                Return SetError(1, 0, 1)
        EndIf
EndFunc   ;==>_SearchProcess
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-29 10:48 , Processed in 0.081867 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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