leehomv 发表于 2012-3-18 20:24:44

如何让程序每执行一次都读取不同的参数呢?

本帖最后由 leehomv 于 2012-3-18 20:28 编辑

在程序完全退出的情况下
第二次执行
这样是不是就需要第一次启动时写入返回值
第二次启动时读取返回值?并循环?

Ycxw2008 发表于 2012-3-18 20:35:26

群里也不说明白点,能否讲具体点 才能对症下药
都不明白你要干什么

leehomv 发表于 2012-3-18 20:51:22

回复 2# Ycxw2008


就是手动运行程序 程序每次启动都会按顺序不重复执行的执行其他操作

Ycxw2008 发表于 2012-3-18 21:09:04

本帖最后由 Ycxw2008 于 2012-3-18 21:16 编辑

回复 3# leehomv
参数 这个单词 好像范围很广 做个例子给你看看 是不是这样

我猜你的意思 是不是 不想用ini类似的配置文件或tmp之类的 文件?
如果那样的话 估计你的想法有点不切实际了Opt("GUIOnEventMode", 1)

Local $sCtrlBtn = [["测 试 一", "测 试 二", "测 试 三", "测 试 四", "测 试 五", '读取', '保存', '退出']]
Local $hMain = GUICreate("", 200, 200, -1, -1)
GUISetOnEvent(-3, "_Exit")
For $i = 0 To UBound($sCtrlBtn, 2) - 4
        $sCtrlBtn[$i] = GUICtrlCreateCheckbox(StringFormat("%s\t%s\t%s",$sCtrlBtn[$i]), 10, 10 + $i * 25)
        If IniRead("t.ini", "Setting", "Menu" & $i, "") == 1 Then GUICtrlSetState(-1, 1)
Next
Local $Label=GUICtrlCreateLabel("",100,20,200,100),$sLabel=False
GUICtrlSetFont(-1, 24)
GUICtrlSetColor(-1, 0x0860a8)
$sCtrlBtn = GUICtrlCreateButton($sCtrlBtn, 5, 160, 60, 30)
$sCtrlBtn = GUICtrlCreateButton($sCtrlBtn, 65, 160, 60, 30)
$sCtrlBtn = GUICtrlCreateButton($sCtrlBtn, 125, 160, 60, 30)
GUISetState()
GUICtrlSetOnEvent($sCtrlBtn, "_Exit")
GUIRegisterMsg(273, "WM_COMMAND")
While 1
        If $sLabel And GUICtrlRead($Label)="" Then GUICtrlSetData($Label,"已"&@CRLF&"修"&@CRLF&"改")
WEnd
Func _exit()
        Exit
EndFunc   ;==>_exit

Func WM_COMMAND($hWnd, $Msg, $wParma, $lParma)
        Local $CtrlID = BitAND($wParma, 0x0000FFFF)
        Switch $CtrlID
                Case $sCtrlBtn To $sCtrlBtn
                        If ($sLabel =False And GUICtrlRead($Label)="") Then $sLabel=True
                Case $sCtrlBtn
                        For $i = 0 To 4
                                If BitAND(IniRead("t.ini", "Setting", "Menu" & $i, ''), 1) Then
                                        GUICtrlSetState($sCtrlBtn[$i], 1)
                                Else
                                        GUICtrlSetState($sCtrlBtn[$i], 4)
                                EndIf
                        Next
                        $sLabel=False
                        GUICtrlSetData($Label,"")
                Case $sCtrlBtn
                        For $i = 0 To 4
                                IniWrite("t.ini", "Setting", "Menu" & $i, BitAND(GUICtrlRead($sCtrlBtn[$i]), 1))
                        Next
                        MsgBox(262144, '提示', '已保存')
                        ShellExecute("t.ini")
        EndSwitch
EndFunc   ;==>WM_COMMAND

leehomv 发表于 2012-3-18 21:16:11

回复 4# Ycxw2008

比如参数就是执行其他程序

Ycxw2008 发表于 2012-3-18 21:18:12

回复 5# leehomv

    不然你就放出你的源码
    给大家帮你看看
   不然就无能为力了
    给了你例子了 你稍微看下吧
    要么就是刚才群里的例子
    传命令行参数 就是命令行里 test.exe -1[就做-1的事]
                                                            -2[就做-2的事]

leehomv 发表于 2012-3-18 21:19:59

回复 6# Ycxw2008


好的
我现在弄
谢谢了

Qokelate 发表于 2012-3-19 15:32:33

串式参数例子


ParaFilter($CMDLINE)
Exit

Func ParaFilter($ParaCount)
;Run in No Parameter
If $ParaCount < 1 Then
Run(@ScriptFullPath & ' /InsDrv')
Exit
EndIf

Switch $CMDLINE
Case '/InsDrv'
   AutoItSetOption('TrayIconHide', 1)
   Run(@ScriptFullPath & ' /ChkGUI ' & @AutoItPID)
   InsDrv()

Case '/ChkGUI'
   AutoIns(Number($CMDLINE))

EndSwitch
EndFunc   ;==>ParaFilter

user3000 发表于 2012-3-19 15:58:12

可以用参数, 也可以读取(文件\注册表等)获取'这个参数'的值吧!
第1次启动, 设立一个默认的起始值, 然后写文件等记录下一个值也行.

xms77 发表于 2012-3-19 20:46:25

创建ini文件来写入和读取参数应该可以吧?

haijie1223 发表于 2012-3-20 15:03:53

程序本身一般都是不可写的吧,要保存当然要有配置文件。每次都把配置保存一下,下次启动时读取就可以了。
页: [1]
查看完整版本: 如何让程序每执行一次都读取不同的参数呢?