au3 的 For 循环语句读取INI配置文件自动生成的按钮,如何自动设置按钮的动作?
网上流行两类读取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 编辑 ] 能。。。 注册个WINDOWS消息,截获按钮点击事件 原帖由 sanhen 于 2008-12-2 22:22 发表 http://www.autoitx.com/images/common/back.gif
能。。。
惜言如金啊!
能多言赐教末!!!! 谢!!!!!!!!!!!!!!!!!
[ 本帖最后由 131738 于 2008-12-2 23:21 编辑 ] 原帖由 quintin 于 2008-12-2 22:28 发表 http://www.autoitx.com/images/common/back.gif
注册个WINDOWS消息,截获按钮点击事件
可惜我菜鸟!
点拨高深了点!!!
能稍为多几句吗??????
谢!!!!!!!!!!!!!!!!!! 无人能帮忙吗?! 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 原帖由 quintin 于 2008-12-3 21:08 发表 http://www.autoitx.com/images/common/back.gif
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wPara ...
终于盼来了一段源码!深表谢意!!!!!
我复制下来看看! 用语句设置控件时用数组存储控件ID等信息
回复 9# UID 的帖子
正在数组苦战中!水平有限,能写一,两句关键语句末!谢谢了!!!!!!!!!!!! 挂了10多天了!!
还是无解!!!!!!!!!!!!!烦!!!!!!!! 如有:
for $i = 1 to $ini
$button[$i] = guictrlcreatebutton()
next 你可以在ini文件里面加入每个文件的安装代码的function的名称
这样的话,每个按钮都能按照需要设置动作了
http://lwc.nhome.cn/code/showip.asp 楼主是这个意思吧
#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
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
[ 本帖最后由 大绯狼 于 2008-12-14 11:14 编辑 ] 以上三位一起谢过!
水平有限!脚本一下看不懂!我拷下来研究了!!
谢谢!!!!!!!!!!!
页:
[1]
2