abcd1258 发表于 2015-9-12 07:21:54

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

本帖最后由 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   
                Run($run[$i])
                Sleep($run[$i])
        Next
EndIf
SOFT.INI文件是

Soft1=C:\1.EXE
Soft2=C:\2.EXE
Soft3=C:\3.EXE

请教一下大家一个问题,要怎么才能先运行1.exe完成后再运行2.exe文件呢?
要从先后顺序
在此先谢谢大家。

txen548 发表于 2015-9-12 07:41:24

可使用此命令
BitAND ( 數值1, 數值2 [, 數值 n] )

txen548 发表于 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
                RunWait(@ScriptDir & "\" & IniRead(@ScriptDir & "\soft.ini","1234", $run[$i]))
      Next
EndIf小改一下,仅供参考

abcd1258 发表于 2015-9-12 20:20:12

回复 4# 邪恶海盗

abcd1258 发表于 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
               msgbox(0,$run[$i],@ScriptDir & "\" & IniRead(@ScriptDir & "\soft.ini","1234", $run[$i]),5)
      Next
EndIf

改成这样就可以测试了...

abcd1258 发表于 2015-9-14 22:22:45

回复abcd1258


改成这样就可以测试了...
邪恶海盗 发表于 2015-9-13 11:29 http://www.autoitx.com/images/common/back.gif


谢谢你热情的解答,不过还是不行。

邪恶海盗 发表于 2015-9-15 10:33:26

回复 8# abcd1258


    怎么个不行法?

ma395311229 发表于 2015-9-15 13:46:46

坐等答案~我也需要

ila 发表于 2015-9-15 14:17:36

为什么不把报错贴上来

abcd1258 发表于 2015-9-15 15:30:11

回复 9# 邪恶海盗

邪恶海盗 发表于 2015-9-15 15:49:27

回复 12# abcd1258

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

   我日,复制的时候把最关键的一句漏了,再试试看

afan 发表于 2015-9-15 16:07:16

$run = IniReadSection(@ScriptDir & "\SOfT.ini", "1234")
If @error Then
        MsgBox(4096, "", "错误, 读取INI文件失败.")
Else
        For $i = 1 To $run
                RunWait('"' & $run[$i] & '"')
        Next
EndIf

abcd1258 发表于 2015-9-15 18:34:32

回复 14# afan


按照此方法,问题解决了,谢谢
页: [1] 2
查看完整版本: [已解决]读取SOFT.INI文件问题