找回密码
 加入
搜索
查看: 10145|回复: 26

au3 的 For 循环语句读取INI配置文件自动生成的按钮,如何自动设置按钮的动作?

  [复制链接]
发表于 2008-12-2 22:16:43 | 显示全部楼层 |阅读模式
网上流行两类读取INI配置文件的软件安装管理器,一类是au3编写,有附源码的。此类安装器

的所有控件如:软件列表、复选框、相关按钮等,都是根据INI文件在脚本中一条条语句事先

设置好的(除控件文本外)例如INI文件中有10个软件,则脚本中就事先创建10套相关控件。

如果在INI文件中除掉一个软件,安装界面仍然是10套控件!

另一类软件安装管理器,安装界面内控件的多少完全受控于INI文件,任意修改INI文件,安装界面

内不会有多余或缺少的控件,很方便使用者自由配置。但此类软件安装管理器无一例外的都不

带源码,

本人用au3试图写出有这样功能的脚本,用For 循环语句读取INI配置,能自动生成相应按钮。但不

知下一步应如何自动设置按钮的动作函数?翻遍了au3的帮助和各相关网站,仍找不到解决办法!

粗略看了一下VB6 ,好像VB6 没有读取INI文件的命令

请教高手:au3能做出这个吗?应如何做呢?又或是au3根本不行!!!

先谢了!!!!!!!!

[ 本帖最后由 131738 于 2008-12-14 19:28 编辑 ]
发表于 2008-12-2 22:22:50 | 显示全部楼层
能。。。
发表于 2008-12-2 22:28:32 | 显示全部楼层
注册个WINDOWS消息,截获按钮点击事件
 楼主| 发表于 2008-12-2 23:18:06 | 显示全部楼层
原帖由 sanhen 于 2008-12-2 22:22 发表
能。。。


惜言如金啊!

能多言赐教末!!!! 谢!!!!!!!!!!!!!!!!!

[ 本帖最后由 131738 于 2008-12-2 23:21 编辑 ]
 楼主| 发表于 2008-12-2 23:21:15 | 显示全部楼层
原帖由 quintin 于 2008-12-2 22:28 发表
注册个WINDOWS消息,截获按钮点击事件


可惜我菜鸟!  

点拨高深了点!!!

能稍为多几句吗??????

谢!!!!!!!!!!!!!!!!!!
 楼主| 发表于 2008-12-3 19:54:50 | 显示全部楼层
无人能帮忙吗?!
发表于 2008-12-3 21:08:33 | 显示全部楼层
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    #forceref $hWnd, $Msg
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    Local $hCtrl = $lParam
           Switch $nNotifyCode   ;
                Case $BN_CLICKED   ;按钮单击事件
                    switch $hCtrl    ;判断控件ID
                    case  $btn   
                                        do something
              EndSwitch
      EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 楼主| 发表于 2008-12-3 22:00:16 | 显示全部楼层
原帖由 quintin 于 2008-12-3 21:08 发表
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    #forceref $hWnd, $Msg
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wPara ...



终于盼来了一段源码!深表谢意!!!!!

我复制下来看看!
发表于 2008-12-11 10:39:09 | 显示全部楼层
用语句设置控件时用数组存储控件ID等信息
 楼主| 发表于 2008-12-11 13:56:47 | 显示全部楼层

回复 9# UID 的帖子

正在数组苦战中!水平有限,能写一,两句关键语句末!

谢谢了!!!!!!!!!!!!
 楼主| 发表于 2008-12-13 21:37:15 | 显示全部楼层
挂了10多天了!!

还是无解!!!!!!!!!!!!!烦!!!!!!!!
发表于 2008-12-13 21:44:06 | 显示全部楼层
如有:
for $i = 1 to $ini[0]
$button[$i] = guictrlcreatebutton()
next
发表于 2008-12-13 22:33:52 | 显示全部楼层
你可以在ini文件里面加入每个文件的安装代码的function的名称
这样的话,每个按钮都能按照需要设置动作了







发表于 2008-12-13 22:52:39 | 显示全部楼层
楼主是这个意思吧
[au3]#include <GuiConstants.au3>
Opt("GUIOnEventMode", 1)

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 494, 345, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "main")
Dim $Button[3]
GUISetState()
#EndRegion ### END Koda GUI section ###
For $i = 0 To 2
        $Button[$i] = GUICtrlCreateButton("Button" & $i, 320, 64+30*($i), 121, 25, 0)
        GUICtrlSetOnEvent($Button[$i], "main")

Next

While 1
        Sleep(1000)
WEnd

Func main()
        For $i = 0 To 2
                Switch @GUI_CtrlId
                        Case $GUI_EVENT_CLOSE
                                Exit
                        Case $Button[$i]
                                MsgBox(0, "", "button" & $i)
                EndSwitch
        Next
EndFunc   ;==>main[/au3]

[ 本帖最后由 大绯狼 于 2008-12-14 11:14 编辑 ]
 楼主| 发表于 2008-12-14 17:58:59 | 显示全部楼层
以上三位一起谢过!

水平有限!脚本一下看不懂!我拷下来研究了!!

谢谢!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-9 02:03 , Processed in 0.080181 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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