找回密码
 加入
搜索
查看: 6663|回复: 16

[AU3基础] [已解决]读取SOFT.INI文件问题

 火.. [复制链接]
发表于 2015-9-12 07:21:54 | 显示全部楼层 |阅读模式
本帖最后由 abcd1258 于 2015-9-15 22:01 编辑
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Icon=ICO\ICO.ICO
#PRE_Outfile=soft.exe
#PRE_Res_requestedExecutionLevel=None
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
$run = IniReadSection(@ScriptDir & "\SOfT.ini","1234")
If @error Then
        MsgBox(4096, "", "错误, 读取INI文件失败.")
Else
        For $i = 1 To $run[0][0]     
                Run($run[$i][1])
                Sleep($run[$i][0])
        Next
EndIf
SOFT.INI文件是
[1234]
Soft1=C:\1.EXE
Soft2=C:\2.EXE
Soft3=C:\3.EXE

请教一下大家一个问题,要怎么才能先运行1.exe完成后再运行2.exe文件呢?
要从先后顺序
在此先谢谢大家。
发表于 2015-9-12 07:41:24 | 显示全部楼层
可使用此命令
BitAND ( 數值1, 數值2 [, 數值 n] )
发表于 2015-9-12 07:45:38 | 显示全部楼层
給份代碼給你研究
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
$Form1                        = Guicreate("Client PC 自動化安裝程式", 340, 120, -1, -1)
$Button1                = GuiCtrlCreateButton("全選", 10, 95, 60, 20)
$Button2                = GuiCtrlCreateButton("取消全選", 130, 95, 60, 20)
$Button3                = GuiCtrlCreateButton("執行", 250, 95, 60, 20)
$Checkbox1                = GUICtrlCreateCheckbox("Office2003", 10, 10, 120, 20)
$Checkbox2                = GUICtrlCreateCheckbox("還原軟件", 10, 40, 120, 20)
$Checkbox3                = GUICtrlCreateCheckbox("AdbeRdr810", 10, 70, 120, 20)
$Checkbox4                = GUICtrlCreateCheckbox("Java", 130, 10, 120, 20)
$Checkbox5                = GUICtrlCreateCheckbox("7-Zip", 130, 40, 120, 20)
$Checkbox6                = GUICtrlCreateCheckbox("ERP", 130, 70, 120, 20)
$Checkbox7                = GUICtrlCreateCheckbox("VNC監視器", 250, 10, 120, 20)
$Checkbox8                = GUICtrlCreateCheckbox("Xn View", 250, 40, 120, 20)
$Checkbox9                = GUICtrlCreateCheckbox("IE7", 250, 70, 120, 20)
GuiSetState(@SW_SHOW)
HotKeySet("{ESC}", "_Exit") ;按Esc結束程式
Func _Exit()
    Exit 0
EndFunc
While 1
        $Msg = GUIGetMsg()
        Switch $Msg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1                ;設定Checkbox 1~11 全選
                        GUICtrlSetState($Checkbox1,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox2,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox3,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox4,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox5,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox6,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox7,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox8,$GUI_CHECKED)
                        GUICtrlSetState($Checkbox9,$GUI_CHECKED)
                Case $Button2                ;設定Checkbox 1~11 取消全選
                        GUICtrlSetState($Checkbox1,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox2,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox3,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox4,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox5,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox6,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox7,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox8,$GUI_UNCHECKED)
                        GUICtrlSetState($Checkbox9,$GUI_UNCHECKED)
                Case $Button3
                    If BitAND(GUICtrlRead($Checkbox1),$gui_checked) Then
                                RunWait("各軟體Auto\5.安裝Office2003.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox2),$gui_checked) Then
                                RunWait("各軟體Auto\2.安裝還原軟件.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox3),$gui_checked) Then
                                RunWait("各軟體Auto\3.安裝AdbeRdr810.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox4),$gui_checked) Then
                                RunWait("各軟體Auto\4.安裝Java.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox5),$gui_checked) Then
                                RunWait("各軟體Auto\1.安裝7-Zip.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox6),$gui_checked) Then
                                RunWait("各軟體Auto\6.安裝ERP.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox7),$gui_checked) Then
                                RunWait("各軟體Auto\7.安裝VNC監視器.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox8),$gui_checked) Then
                                RunWait("各軟體Auto\8.安裝Xn View.exe",@ScriptDir)
                        EndIf
                        If BitAND(GUICtrlRead($Checkbox9),$gui_checked) Then
                                RunWait("各軟體Auto\9.安裝IE7.exe",@ScriptDir)
                        EndIf
                        MsgBox(0,"Auto Install Script","Auto Client Install 自動安裝、設定完畢" &@LF& "      請立即重新開機完成安裝程序")
        EndSwitch
Wend
发表于 2015-9-12 13:59:23 | 显示全部楼层
If @error Then
        MsgBox(4096, "", "错误, 读取INI文件失败.")
Else
        For $i = 1 To $run[0]
                RunWait(@ScriptDir & "" & IniRead(@ScriptDir & "\soft.ini","1234", $run[$i]))
        Next
EndIf
小改一下,仅供参考
 楼主| 发表于 2015-9-12 20:20:12 | 显示全部楼层
回复 4# 邪恶海盗
 楼主| 发表于 2015-9-12 20:20:59 | 显示全部楼层
谢谢大家的回答,还是不能实现。
发表于 2015-9-13 11:29:29 | 显示全部楼层
本帖最后由 邪恶海盗 于 2015-9-13 11:31 编辑

回复 6# abcd1258
If @error Then
        MsgBox(4096, "", "错误, 读取INI文件失败.")
Else
        For $i = 1 To $run[0]
               msgbox(0,$run[$i],@ScriptDir & "\" & IniRead(@ScriptDir & "\soft.ini","1234", $run[$i]),5)
        Next
EndIf


改成这样就可以测试了...
 楼主| 发表于 2015-9-14 22:22:45 | 显示全部楼层
回复  abcd1258


改成这样就可以测试了...
邪恶海盗 发表于 2015-9-13 11:29



谢谢你热情的解答,不过还是不行。
发表于 2015-9-15 10:33:26 | 显示全部楼层
回复 8# abcd1258


    怎么个不行法?
发表于 2015-9-15 13:46:46 | 显示全部楼层
坐等答案~我也需要
发表于 2015-9-15 14:17:36 | 显示全部楼层
为什么不把报错贴上来
 楼主| 发表于 2015-9-15 15:30:11 | 显示全部楼层
回复 9# 邪恶海盗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-9-15 15:49:27 | 显示全部楼层
回复 12# abcd1258

$run=IniReadSectionNames(@scriptdir & "\soft.ini")

   我日,复制的时候把最关键的一句漏了,再试试看
发表于 2015-9-15 16:07:16 | 显示全部楼层
$run = IniReadSection(@ScriptDir & "\SOfT.ini", "1234")
If @error Then
        MsgBox(4096, "", "错误, 读取INI文件失败.")
Else
        For $i = 1 To $run[0][0]
                RunWait('"' & $run[$i][1] & '"')
        Next
EndIf
 楼主| 发表于 2015-9-15 18:34:32 | 显示全部楼层
回复 14# afan


按照此方法,问题解决了,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 20:12 , Processed in 0.116516 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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