找回密码
 加入
搜索
查看: 20081|回复: 28

[原创] 多维数组在 GUI控件 和 注册表 中应用实例

 火.. [复制链接]
发表于 2009-3-13 21:16:28 | 显示全部楼层 |阅读模式
该怎么讲解还没想清楚,先发代码,希望大家可以看明白。
附件中含有这两个例子。

例1.au3
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1);OnEvent模式
 
Global $Button[4][2], $Form1;定义主窗体和按钮
 
$Form1 = GUICreate("主窗体", 300, 35, 20, 5)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
 
Local $Total = IniReadSection("例1.ini", "1")
 
For $I = 1 To $Total[0][0]
        
    $Button[$I][0] = GUICtrlCreateButton($Total[$I][0], 60*$I, 2, 60, 30)
;~         按钮文字为INI等号左边的值,$Button[$I][0]为按钮控件ID

    $Button[$I][1] = $Total[$I][1];
;~         $Button[$I][1] 为INI等号右边的值,即要运行的程序。

    GUICtrlSetOnEvent($Button[$I][0], "B_Msg")
;~         将按钮点击注册到函数 B_Msg()

Next

GUISetState()
 
While 1
    Sleep(1000)
WEnd
 
Func B_Msg()
    For $i = 1 To UBound($Button, 1) - 1
                
        If @GUI_CtrlId = $Button[$I][0] Then Run($Button[$I][1])
;~                 如果点下了$Button[$I][0],运行$Button[$I][1](即INI等号右边的值)

    Next
EndFunc   ;==>B_Msg

Func _Exit()
        Exit
EndFunc

例1.ini 内容

[1]
1 记事本=C:\WINDOWS\system32\Notepad.exe
2 画  图=C:\WINDOWS\system32\mspaint.exe
3 计算器=C:\WINDOWS\system32\calc.exe

例2.au3
Local $RegKey[9][6] = _
                [["HKCU\Software\Au3_Array_Test", "Test1", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test2", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test3", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test4", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test5", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test6", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test7", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test8", "REG_DWORD", "0", "1", "2"], _
                ["HKCU\Software\Au3_Array_Test", "Test9", "REG_DWORD", "0", "1", "2"]]
Local $QS = MsgBox(3, "二维数组应用:写注册表项", "创建值为1的项?")

For $I = 0 To 8
        If $QS = 6 Then;“是”
                RegWrite($RegKey[$I][0], $RegKey[$I][1], $RegKey[$I][2], $RegKey[$I][3]);写入值“0”
        ElseIf $QS = 7 Then;“否”
                RegWrite($RegKey[$I][0], $RegKey[$I][1], $RegKey[$I][2], $RegKey[$I][4]);写入值“1”
        Else;“取消”
                RegWrite($RegKey[$I][0], $RegKey[$I][1], $RegKey[$I][2], $RegKey[$I][5]);写入值“2”
        EndIf
Next

MsgBox(0,0,"创建完成,确认后将删除刚才试验用的注册表项")
RegDelete("HKCU\Software\Au3_Array_Test")




[ 本帖最后由 漠北雪~狼 于 2009-3-13 21:17 编辑 ]

本帖子中包含更多资源

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

×
发表于 2009-3-15 18:36:01 | 显示全部楼层
太菜了,看不懂,先收藏。
发表于 2009-3-26 21:44:51 | 显示全部楼层
例1好像可以用于做快捷工具条!
发表于 2009-3-27 22:15:55 | 显示全部楼层
支持一下三恨!
 楼主| 发表于 2009-3-28 03:03:15 | 显示全部楼层
破帽子,我插你个PP,是我不是叁恨好不.........
发表于 2009-4-20 19:10:08 | 显示全部楼层

dddddddddddddddd

哈哈。。哈哈。。
发表于 2009-4-20 20:29:20 | 显示全部楼层
4楼拍错马屁,楼主狠狠教训他,哈……
发表于 2009-4-20 20:30:17 | 显示全部楼层
4楼拍错马屁,楼主狠狠教训他,哈……
发表于 2009-7-2 23:47:27 | 显示全部楼层
先标记,后使用。
发表于 2009-7-3 22:53:23 | 显示全部楼层
要好好的學習一下
发表于 2009-8-6 20:25:20 | 显示全部楼层
下载学习一下,正需要这方面的资料
发表于 2009-11-20 14:08:11 | 显示全部楼层
正在学习这个方面的知识!谢谢了!
发表于 2010-4-17 11:24:41 | 显示全部楼层
看看..谢谢.
 楼主| 发表于 2010-7-12 10:41:07 | 显示全部楼层
此贴貌似沉下去了,不行,我来顶下。
发表于 2010-7-12 12:25:43 | 显示全部楼层
支持,请多发源代码
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 05:05 , Processed in 0.077859 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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