找回密码
 加入
搜索
查看: 4757|回复: 10

[网络通信] 列表框读取ini问题[解决]

 火.. [复制链接]
发表于 2012-1-16 22:45:46 | 显示全部楼层 |阅读模式
本帖最后由 那片叶子 于 2012-1-22 14:16 编辑



如图: 红色区域,蓝色区域,都是,读取INI的不同位置,然后显示在listview上!
点击程序上的列表,显示在下面的输入框内!

各位帮帮忙!

本帖子中包含更多资源

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

×
发表于 2012-1-16 23:06:04 | 显示全部楼层
唉,LZ你也努点力呀,老会员了,这么简单的东西还…
 楼主| 发表于 2012-1-16 23:19:13 | 显示全部楼层
在部队2年,忘的差不多了!!
发表于 2012-1-17 09:58:56 | 显示全部楼层
如图: 红色区域,蓝色区域,都是,读取INI的不同位置,然后显示在listview上!
点击程序上的列表,显 ...
那片叶子 发表于 2012-1-16 22:45



    你发这个帖子和整上面那个图片的时间,估计都边看帮助边都把这个代码写出来了

Really, So easy to do it!

评分

参与人数 1金钱 +10 收起 理由
komaau3 + 10

查看全部评分

发表于 2012-1-17 10:52:02 | 显示全部楼层
老实说, 这东西我也不会! 呵呵!
发表于 2012-1-17 12:20:51 | 显示全部楼层
回复 1# 那片叶子


    给个思路吧,回去对照着看帮助即可。
   下面是可能用到的函数:

1. 红色读取:
   IniReadSectionNames - 返回一个包含所有Section名称的数组,假设为 $sectionArray
2. 蓝色读取:
   IniReadSection - 返回指定Section下所有的关键字和值。
   用 For $section In $sectionArray 循环 分别读取每个Section中的值
3. 加入listview:
   _GUICtrlListView_AddItem        ; 1st column
    _GUICtrlListView_AddSubItem   ; 2nd column
4. 点击列表item,显示到输入框:
   捕获WM_NOTIFY系统消息,在 $NM_CLICK 单击事件中,通过 _GUICtrlListView_HitTest 或 _GUICtrlListView_SubItemHitTest 判断是哪个Item被点击选中,然后用_GUICtrlListView_GetItemText获取选中项的文本。
 楼主| 发表于 2012-1-17 15:58:17 | 显示全部楼层
理解!!!
发表于 2012-1-17 21:29:39 | 显示全部楼层
在部队2年,忘的差不多了!!
那片叶子 发表于 2012-1-16 23:19



    可以理解,帮你写了个,自己改一下Ini读取方式~
#include <GUIListView.au3>

Opt('GUIOnEventMode', 1)

Local $sIni = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\AU3TOOL.exe.ini'
Local $aKV = IniReadSection($sIni, 'traymenu')
If @error Then Local $aKV[3][2] = [[2],[1, 'v1'],[2, 'v2']]

Local $hGui = GUICreate('')
GUISetOnEvent(-3, '_Exit')

Local $ListView1 = GUICtrlCreateListView('key|value', 5, 5, 390, 340)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 300)
For $i = 1 To $aKV[0][0]
        GUICtrlCreateListViewItem($aKV[$i][0] & '|' & $aKV[$i][1], $ListView1)
Next

Local $iInput1 = GUICtrlCreateInput('', 5, 350, 100, 20)
Local $iInput2 = GUICtrlCreateInput('', 110, 350, 200, 20)
GUICtrlCreateButton('退出', 315, 349, 80, 22)
GUICtrlSetOnEvent(-1, '_Exit')

GUISetState()
GUIRegisterMsg(0x004E, '_WM_NOTIFY')        ;$WM_NOTIFY = 0x004E

While 1
        Sleep(500)
WEnd

Func _Exit()
        Exit
EndFunc   ;==>_Exit

Func _WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
        Local $tagNMHDR, $Event, $hWndFrom, $IDFrom
        Local $tagNMHDR = DllStructCreate('int;int;int', $LParam)
        If @error Then Return $GUI_RUNDEFMSG
        $IDFrom = DllStructGetData($tagNMHDR, 2)
        $Event = DllStructGetData($tagNMHDR, 3)
        $tagNMHDR = 0
        If ($IDFrom = $ListView1) And ($Event = 0xFFFFFFFE) Then _ItemRead()        ;$NM_CLICK = 0xFFFFFFFE
EndFunc   ;==>_WM_NOTIFY

Func _ItemRead()
        Local $Index = _GUICtrlListView_GetSelectedIndices($ListView1)
        If $Index = '' Then Return
        $Index = Number($Index)
        GUICtrlSetData($iInput1, _GUICtrlListView_GetItemText($ListView1, $Index))
        GUICtrlSetData($iInput2, _GUICtrlListView_GetItemText($ListView1, $Index, 1))
EndFunc   ;==>_ItemRead
发表于 2012-1-18 08:07:27 | 显示全部楼层
技术比我还好,还在部队待了两年!看来我没法混了!
发表于 2012-1-19 11:36:16 | 显示全部楼层
呵呵,分别读取对应位置的数据就行啊,去看帮助吧,iniread
发表于 2012-1-20 09:06:55 | 显示全部楼层
这个我也不懂,看了,大家的回复后,懂了,谢谢了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 23:23 , Processed in 0.137820 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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