找回密码
 加入
搜索
查看: 9677|回复: 16

如何写出个修改列表框 某个列表信息 代码 请教中。。。

 火.. [复制链接]
发表于 2010-1-31 17:34:58 | 显示全部楼层 |阅读模式
本帖最后由 kswdiy 于 2010-2-1 09:27 编辑

看截图就知道了 我要的问题了
#AutoIt3Wrapper_Compression=4

#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>

Opt("TrayMenuMode",1)
$pei = @ScriptDir&"\config.ini"

$Form1 = GUICreate("IP DNS MAC 配置工具", 400, 200, -1, -1,  _ 
BitOR($WS_MINIMIZEBOX,$WS_CAPTION,$WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))

$hListView = GUICtrlCreateListView(" 名 称 |     IP地址     |    子网掩码   |     网 关     |     首选DNS    |      备用DNS    |     MAC地址   |", _
10, 10, 380, 150,-1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_FULLROWSELECT,$LVS_REPORT))

$Button1 = GUICtrlCreateButton("配 置", 280, 170, 50, 20, $WS_GROUP)
$Button2 = GUICtrlCreateButton("退 出", 340, 170, 50, 20, $WS_GROUP)

  $Button4= GUICtrlCreateCombo("",150, 170, 100, 20, $WS_GROUP)
$mingchen = IniReadSectionNames($pei)

GUICtrlSetData($Button4,GUICtrlRead($mingchen))
;添加右键菜单到列表框中
$zhucaidan = GUICtrlCreateContextMenu($hListView)
$tianjia = GUICtrlCreateMenuItem("添加", $zhucaidan)
$shanchu = GUICtrlCreateMenuItem("删除", $zhucaidan)
$xiugai = GUICtrlCreateMenuItem("修改", $zhucaidan)
$shuaxin = GUICtrlCreateMenuItem("刷新", $zhucaidan)

;读取配置并显示列表

         $z = 0
        _GUICtrlListView_DeleteAllItems($hListView)
        $mingchen = IniReadSectionNames($pei)
        If Not @error Then        
                For $i = 1 To $mingchen[0]
                        GUICtrlCreateListViewItem($mingchen[$i], $hListView)
                
                        $IP = IniRead($pei,$mingchen[$i],"IP地址","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z+1)
                
                        $ziwangyama = IniRead($pei,$mingchen[$i],"子网掩码","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z+1)
                
                        $wangguan = IniRead($pei,$mingchen[$i],"网 关","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z+1)
                
                        $shouxuanDNS = IniRead($pei,$mingchen[$i],"首选DNS","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z+1)
                
                        $beiyongDNS= IniRead($pei,$mingchen[$i],"备用DNS","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z+1)
                
                        $MAC = IniRead($pei,$mingchen[$i],"MAC地址","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z+1)
                        $z += 1
                Next
        EndIf
;读取配置并显示列表结束
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $shanchu
             shanchu()
                Case $Button2
                        Tuichu()
                Case $tianjia
                        tianjia()        
                Case $shuaxin
                        shuaxin()
        Case $xiugai
            xiugai()                        
                            
EndSwitch
WEnd



Func shanchu()
        $a = _GUICtrlListView_GetSelectedIndices($hListView)
        $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
        $chaifen = StringSplit($b,"|")

        $a = MsgBox(32+1,"提示","请确认是否要删除以下数据        "&@CRLF&@CRLF&"     名 称:"&$chaifen[1]&@CRLF&@CRLF&"   IP地址:"&$chaifen[2]&@CRLF&@CRLF& _
        "子网掩码:"&$chaifen[3]&@CRLF&@CRLF&"    网 关:"&$chaifen[4]&@CRLF&@CRLF&"首选DNS:"&$chaifen[5]&@CRLF&@CRLF& _
        "备用DNS:"&$chaifen[6]&@CRLF&@CRLF&"MAC地址:"&$chaifen[7])
        If $a = 1 Then
                _GUICtrlListView_DeleteItemsSelected($hListView) ;删除选定项目
                IniDelete($pei,$chaifen[1])
                $z = _GUICtrlListView_GetItemCount($hListView)

                ;MsgBox(48, "提示", "数据删除成功")
        EndIf
        EndFunc   ;==>shanchu
        

Func tianjia()
        GUISetState(@SW_DISABLE,$Form1)  
        $Form2 = GUICreate("请输入需要添加的数据", 380, 200, -1, -1, BitOR _
        ($WS_MINIMIZEBOX,$WS_CAPTION,$WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
        $Button11 = GUICtrlCreateButton("保存", 250, 150, 50, 30, $WS_GROUP)
        $Button12 = GUICtrlCreateButton("退出", 320, 150, 50, 30, $WS_GROUP)

        $Label1 = GUICtrlCreateLabel("    名称:", 20, 23, 55, 17)
        $Label2 = GUICtrlCreateLabel("  IP地址:", 20, 53, 55, 17)
        $Label3 = GUICtrlCreateLabel("子网掩码:", 20, 83, 55, 17)
        $Label4 = GUICtrlCreateLabel("    网关:", 20, 113, 55, 17)
        $Label5 = GUICtrlCreateLabel(" 首选DNS:", 200, 23, 55, 17)
        $Label6 = GUICtrlCreateLabel(" 备用DNS:", 200, 53, 55, 17)
        $Label7 = GUICtrlCreateLabel(" MAC地址:", 200, 83, 55, 17)


        $Input1 = GUICtrlCreateInput("", 80, 20, 100, 21)
                $Input2 = GUICtrlCreateInput("", 80, 50, 100, 21)
        $Input3 = GUICtrlCreateInput("", 80, 80, 100, 21)
            $Input4 = GUICtrlCreateCombo("", 80, 110, 100, 21)
            GUICtrlSetData(-1, "192.168.0.1|192.168.1.1", "192.168.1.1")
                
        $Input5 = GUICtrlCreateInput("", 260, 20, 100, 21)
                $Input6 = GUICtrlCreateInput("", 260, 50, 100, 21)
                $Input7 = GUICtrlCreateInput("", 260, 80, 100, 21)
        GUISetState(@SW_SHOW)

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case -3,$Button12
                                        GUISetState(@SW_ENABLE,$Form1)         ;启用父窗口
                                        GUIDelete($Form2)                      ;;删除指定窗口和它包含的所有控件.
                                        ExitLoop    
                                        ;Exit
                        Case $Button11
                                        $z = _GUICtrlListView_GetItemCount($hListView)
                                        $mingchen = GUICtrlRead($Input1)
                                        $IP= GUICtrlRead($Input2)
                                        $ziwangyama= GUICtrlRead($Input3)
                                                                                $wangguan= GUICtrlRead($Input4)
                                                                                $shouxuanDNS= GUICtrlRead($Input5)
                                                                                $beiyongDNS= GUICtrlRead($Input6)
                                                                                $MAC= GUICtrlRead($Input7)
                                                                        
                                        If $mingchen <> "" And $IP <> "" Then
                                                IniWrite($pei,$mingchen,"名称",$mingchen)
                                                IniWrite($pei,$mingchen,"IP地址",$IP)
                                                                                                IniWrite($pei,$mingchen,"子网掩码",$ziwangyama)
                                                                                                IniWrite($pei,$mingchen,"网 关",$wangguan)
                                                                                                IniWrite($pei,$mingchen,"首选DNS",$shouxuanDNS)
                                                                                                IniWrite($pei,$mingchen,"备用DNS",$beiyongDNS)
                                                IniWrite($pei,$mingchen,"MAC地址",$MAC)
                                                                                                
                                                GUICtrlCreateListViewItem($mingchen, $hListView)
                                               ; _GUICtrlListView_AddSubItem($hListView, $z, $mingchen, 1, $z+1)                
                                                _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z+1)                
                                                _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z+1)

                                            
        
                                                MsgBox(0,"保存成功","      名称:"&$mingchen&@CRLF&@CRLF&"   IP地址:" _
                                                                                                       &$IP&@CRLF&@CRLF&"默认子网:"&$ziwangyama&@CRLF&@CRLF& _
                                                                                                           "      网关:"&$wangguan&@CRLF&@CRLF&" 首选DNS:"&$shouxuanDNS&@CRLF&@CRLF& _
                                                                                                           " 备用DNS:"&$beiyongDNS&@CRLF&@CRLF&" MAC地址:"&$MAC)
                                        Else
                                                MsgBox(64,"提示","请正确输入相关内容,否则无法添加项目!")
                                        EndIf
                EndSwitch
                        WEnd
                        Return shuaxin()
EndFunc



Func shuaxin()
         $z = 0
        _GUICtrlListView_DeleteAllItems($hListView)
        $mingchen = IniReadSectionNames($pei)
        If Not @error Then        
                For $i = 1 To $mingchen[0]
                        GUICtrlCreateListViewItem($mingchen[$i], $hListView)
                
                        $IP = IniRead($pei,$mingchen[$i],"IP地址","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z+1)
                
                        $ziwangyama = IniRead($pei,$mingchen[$i],"子网掩码","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z+1)
                
                        $wangguan = IniRead($pei,$mingchen[$i],"网 关","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z+1)
                
                        $shouxuanDNS = IniRead($pei,$mingchen[$i],"首选DNS","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z+1)
                
                        $beiyongDNS= IniRead($pei,$mingchen[$i],"备用DNS","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z+1)
                
                        $MAC = IniRead($pei,$mingchen[$i],"MAC地址","没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z+1)
                        $z += 1
                Next
        EndIf
EndFunc 



Func xiugai()
 _GUICtrlListView_EditLabel($hListView, 0)
                
        GUISetState(@SW_DISABLE,$Form1)  
        $Form2 = GUICreate("请输入需要添加的数据", 380, 200, -1, -1, BitOR _
        ($WS_MINIMIZEBOX,$WS_CAPTION,$WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
        $Button11 = GUICtrlCreateButton("保存", 250, 150, 50, 30, $WS_GROUP)
        $Button12 = GUICtrlCreateButton("退出", 320, 150, 50, 30, $WS_GROUP)

        $Label1 = GUICtrlCreateLabel("    名称:", 20, 23, 55, 17)
        $Label2 = GUICtrlCreateLabel("  IP地址:", 20, 53, 55, 17)
        $Label3 = GUICtrlCreateLabel("子网掩码:", 20, 83, 55, 17)
        $Label4 = GUICtrlCreateLabel("    网关:", 20, 113, 55, 17)
        $Label5 = GUICtrlCreateLabel(" 首选DNS:", 200, 23, 55, 17)
        $Label6 = GUICtrlCreateLabel(" 备用DNS:", 200, 53, 55, 17)
        $Label7 = GUICtrlCreateLabel(" MAC地址:", 200, 83, 55, 17)
                 
                
                
        $a = _GUICtrlListView_GetSelectedIndices($hListView)
        $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
        $chaifen = StringSplit($b,"|")
       

        $Input1 = GUICtrlCreateInput("", 80, 20, 100, 21)
                 GUICtrlSetData($Input1,GUICtrlRead($chaifen[2]))
                $Input2 = GUICtrlCreateInput("", 80, 50, 100, 21)
        $Input3 = GUICtrlCreateInput("", 80, 80, 100, 21)
                $Input4 = GUICtrlCreateInput("", 80, 110, 100, 21)
        $Input5 = GUICtrlCreateInput("", 260, 20, 100, 21)
                $Input6 = GUICtrlCreateInput("", 260, 50, 100, 21)
                $Input7 = GUICtrlCreateInput("", 260, 80, 100, 21)
        GUISetState(@SW_SHOW)

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case -3,$Button12
                                        GUISetState(@SW_ENABLE,$Form1)         ;启用父窗口
                                        GUIDelete($Form2)                      ;;删除指定窗口和它包含的所有控件.
                                        ExitLoop    
                                        ;Exit
                        Case $Button11
                                        $z = _GUICtrlListView_GetItemCount($hListView)

        
        
        
                                        $mingchen = GUICtrlRead($Input1)
                                        $IP= GUICtrlRead($Input2)
                                        $ziwangyama= GUICtrlRead($Input3)
                                                                                $wangguan= GUICtrlRead($Input4)
                                                                                $shouxuanDNS= GUICtrlRead($Input5)
                                                                                $beiyongDNS= GUICtrlRead($Input6)
                                                                                $MAC= GUICtrlRead($Input7)
                                                                        
                                        If $mingchen <> "" And $IP <> "" Then
                                                IniWrite($pei,$mingchen,"名称",$mingchen)
                                                IniWrite($pei,$mingchen,"IP地址",$IP)
                                                                                                IniWrite($pei,$mingchen,"子网掩码",$ziwangyama)
                                                                                                IniWrite($pei,$mingchen,"网 关",$wangguan)
                                                                                                IniWrite($pei,$mingchen,"首选DNS",$shouxuanDNS)
                                                                                                IniWrite($pei,$mingchen,"备用DNS",$beiyongDNS)
                                                IniWrite($pei,$mingchen,"MAC地址",$MAC)
                                                                                                
                                                GUICtrlCreateListViewItem($mingchen, $hListView)
                                               ; _GUICtrlListView_AddSubItem($hListView, $z, $mingchen, 1, $z+1)                
                                                _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z+1)                
                                                _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z+1)

                                            
        
                                                MsgBox(0,"保存成功","      名称:"&$mingchen&@CRLF&@CRLF&"   IP地址:" _
                                                                                                       &$IP&@CRLF&@CRLF&"默认子网:"&$ziwangyama&@CRLF&@CRLF& _
                                                                                                           "      网关:"&$wangguan&@CRLF&@CRLF&" 首选DNS:"&$shouxuanDNS&@CRLF&@CRLF& _
                                                                                                           " 备用DNS:"&$beiyongDNS&@CRLF&@CRLF&" MAC地址:"&$MAC)
                                        Else
                                                MsgBox(64,"提示","请正确输入相关内容,否则无法添加项目!")
                                        EndIf
                EndSwitch
                        WEnd
                        Return shuaxin()
EndFunc



;退出
Func Tuichu()
        GUISetState(@SW_HIDE)

                
        FileDelete(@TempDir & "\*.exe") ;这行是退出后来的删除上面语句删除不起作用的情况下 万能的这句!
        FileDelete(@TempDir & "\ResHacker.ini")
        Exit
EndFunc   ;==>Qu        
就是在列表框中  选中要重新修改的选项 如下:

然后弹出将选中的的数值 赋值到我自己建的的这个 窗口中对应的输入框中




请教大大们啊 就差这个不知道怎么写了 呵呵呵

谢谢诶。。。

本帖子中包含更多资源

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

×
发表于 2010-1-31 18:21:48 | 显示全部楼层
你的这些数据保存在哪里呢?
发表于 2010-1-31 18:22:55 | 显示全部楼层
发代码上来吧,
 楼主| 发表于 2010-1-31 19:31:44 | 显示全部楼层
好吧 !!!
 楼主| 发表于 2010-1-31 19:37:55 | 显示全部楼层
晕死啊 我都将源码发上来啊  呵呵呵  

没人啊 晕了  

其实 这个是我浆糊加剪刀弄的 先解决 添加 删除 修改 代码再说吧。。。

希望有人帮忙解决a
发表于 2010-1-31 19:46:53 | 显示全部楼层
_GUICtrlListView_SetItemText
发表于 2010-1-31 19:55:34 | 显示全部楼层
刚注意AFAN用的系统默认头像还有签名
发表于 2010-1-31 20:05:20 | 显示全部楼层
你的这些数据保存在哪里呢?
jybb001 发表于 2010-1-31 18:21



    配置文件里吧?
发表于 2010-2-1 01:22:15 | 显示全部楼层
本帖最后由 飞龙三少 于 2010-2-1 01:25 编辑

以下是我写一个类似的配置工具时,采用的方法,给你参考参考:
1、在往列表框中添加Item时,采用GUICtrlCreateListViewItem,可以获得列表中每行记录的控件ID
2、在添加Item的同时,用一个2维数组用来存储各行记录的数据(名称、IP、子网掩码等),当然要多加一列用来记录1中返回的控件ID。
3、当要修改某行记录时,用GUICtrlRead ( 列表的控件ID ),可以获取列表框中被选中行的控件ID,通过这个被选中行的控件ID,可以在2创建的数组中获取到被选中行的各列数据,用GUICtrlSetData,就可以将这些数据预填入你的编辑框中了。

里面用到的各函数,参考AU3帮助文档。
发表于 2010-2-1 08:36:12 | 显示全部楼层
_GUICtrlListView_GetItemText用来获取LISTVIEW的列表值
需要注意的是 列表的索引,就是修改的哪一个,别弄乱了。。
 楼主| 发表于 2010-2-1 09:16:35 | 显示全部楼层
自己解决了呵呵  很简单啊 可能被那个 赋值给误导了

就是在 这选定之后的右键后 将他们的各个值 用
_GUICtrlListView_GetSelectedIndices和_GUICtrlListView_GetItemTextString
还有StringSplit 这3个命令即刻 具体看我代码如下:
Func xiugai()
         
        GUISetState(@SW_DISABLE,$Form1)  
        $Form3 = GUICreate("请输入需要添加的数据", 380, 200, -1, -1, BitOR _
        ($WS_MINIMIZEBOX,$WS_CAPTION,$WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
        $Button11 = GUICtrlCreateButton("保存", 250, 150, 50, 30, $WS_GROUP)
        $Button12 = GUICtrlCreateButton("退出", 320, 150, 50, 30, $WS_GROUP)

        $Label1 = GUICtrlCreateLabel("    名称:", 20, 23, 55, 17)
        $Label2 = GUICtrlCreateLabel("  IP地址:", 20, 53, 55, 17)
        $Label3 = GUICtrlCreateLabel("子网掩码:", 20, 83, 55, 17)
        $Label4 = GUICtrlCreateLabel("    网关:", 20, 113, 55, 17)
        $Label5 = GUICtrlCreateLabel(" 首选DNS:", 200, 23, 55, 17)
        $Label6 = GUICtrlCreateLabel(" 备用DNS:", 200, 53, 55, 17)
        $Label7 = GUICtrlCreateLabel(" MAC地址:", 200, 83, 55, 17)
                 
                
;此下列语句将将选定的列表框在$chaifen中拆分为每个单独的变量例如 $chaifen[1] 就代表$mingcheng 变量所代表的值
        $a = _GUICtrlListView_GetSelectedIndices($hListView)
        $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
        $chaifen = StringSplit($b,"|")
 
        $Input1 = GUICtrlCreateInput("", 80, 20, 100, 21)
                $Input2 = GUICtrlCreateInput("", 80, 50, 100, 21)
        $Input3 = GUICtrlCreateInput("", 80, 80, 100, 21)
                $Input4 = GUICtrlCreateInput("", 80, 110, 100, 21)
        $Input5 = GUICtrlCreateInput("", 260, 20, 100, 21)
                $Input6 = GUICtrlCreateInput("", 260, 50, 100, 21)
                $Input7 = GUICtrlCreateInput("", 260, 80, 100, 21)
                
                GUICtrlSetData($Input1,$chaifen[1])
                GUICtrlSetData($Input2,$chaifen[2])
                GUICtrlSetData($Input3,$chaifen[3])
                GUICtrlSetData($Input4,$chaifen[4])
                GUICtrlSetData($Input5,$chaifen[5])
                GUICtrlSetData($Input6,$chaifen[6])
                GUICtrlSetData($Input7,$chaifen[7])
        GUISetState(@SW_SHOW)

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case -3,$Button12
                                        GUISetState(@SW_ENABLE,$Form1)         ;启用父窗口
                                        GUIDelete($Form3)                      ;;删除指定窗口和它包含的所有控件.
                                        ExitLoop    
                                        ;Exit
                        Case $Button11
                                        $z = _GUICtrlListView_GetItemCount($hListView)

        
        
        
                                        $mingchen = GUICtrlRead($Input1)
                                        $IP= GUICtrlRead($Input2)
                                        $ziwangyama= GUICtrlRead($Input3)
                                                                                $wangguan= GUICtrlRead($Input4)
                                                                                $shouxuanDNS= GUICtrlRead($Input5)
                                                                                $beiyongDNS= GUICtrlRead($Input6)
                                                                                $MAC= GUICtrlRead($Input7)
                                                                        
                                        If $mingchen <> "" And $IP <> "" Then
                                                IniWrite($pei,$mingchen,"名称",$mingchen)
                                                IniWrite($pei,$mingchen,"IP地址",$IP)
                                                                                                IniWrite($pei,$mingchen,"子网掩码",$ziwangyama)
                                                                                                IniWrite($pei,$mingchen,"网 关",$wangguan)
                                                                                                IniWrite($pei,$mingchen,"首选DNS",$shouxuanDNS)
                                                                                                IniWrite($pei,$mingchen,"备用DNS",$beiyongDNS)
                                                IniWrite($pei,$mingchen,"MAC地址",$MAC)
                                                                                                
                                                GUICtrlCreateListViewItem($mingchen, $hListView)
                                               ; _GUICtrlListView_AddSubItem($hListView, $z, $mingchen, 1, $z+1)                
                                                _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z+1)                
                                                _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z+1)
                                                _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z+1)

                                            
        
                                                MsgBox(0,"保存成功","      名称:"&$mingchen&@CRLF&@CRLF&"   IP地址:" _
                                                                                                       &$IP&@CRLF&@CRLF&"默认子网:"&$ziwangyama&@CRLF&@CRLF& _
                                                                                                           "      网关:"&$wangguan&@CRLF&@CRLF&" 首选DNS:"&$shouxuanDNS&@CRLF&@CRLF& _
                                                                                                           " 备用DNS:"&$beiyongDNS&@CRLF&@CRLF&" MAC地址:"&$MAC)
                                        Else
                                                MsgBox(64,"提示","请正确输入相关内容,否则无法添加项目!")
                                        EndIf
                EndSwitch
                        WEnd
                        Return shuaxin()
EndFunc
 楼主| 发表于 2010-2-1 09:23:03 | 显示全部楼层
说白的就是在每个输入框都给他赋值吧
使用
;此下列语句将将选定的列表框在$chaifen中拆分为每个单独的变量例如 $chaifen[1] 就代表$mingcheng 变量所代表的值
        $a = _GUICtrlListView_GetSelectedIndices($hListView)
        $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
        $chaifen = StringSplit($b,"|")


上面3行代码才是重点啊
]的这个然后在每个对应的输入框 设置赋上所选择的变量的值

例如:我将第一个值 也就是每个数值的第一个数值(默认是数据段名字吧。。)
GUICtrlSetData($Input1,$chaifen[1])

这样就会将对应的值赋值到对应的输入框中 绕了半天又回到老地方了 呵呵

惭愧 啊  小菜是也  莫笑啊 大家。。。。。
发表于 2010-2-1 13:38:58 | 显示全部楼层
回复 12# kswdiy


    _GUICtrlListView_AddSubItem ? 你这不是修改,是添加~ 而且,ini 文件里面也是添加新字段。

6#
 楼主| 发表于 2010-2-1 16:21:52 | 显示全部楼层
回复 13# afan


    也算 啊 我把他们全赋值到各自的 输入框中 修改其中几个 不就达到目的了吗??

俺是 小菜   要不 老大帮我我写一段修改的 源码啊 小弟在此谢谢了
发表于 2010-2-1 16:25:05 | 显示全部楼层
回复 14# kswdiy


    仅修改了你需要的部分,其它没看
#AutoIt3Wrapper_Compression=4
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>

Opt("TrayMenuMode", 1)
$pei = @ScriptDir & "\config.ini"
$gj = 210
$Form1 = GUICreate("IP DNS MAC 配置工具", 400 + $gj, 200, -1, -1, _
                BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))

$hListView = GUICtrlCreateListView(" 名 称 |     IP地址     |    子网掩码   |     网 关     |     首选DNS    |      备用DNS    |     MAC地址   |", _
                10, 10, 380 + $gj, 150, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_REPORT))

$Button1 = GUICtrlCreateButton("配 置", 280 + $gj, 170, 50, 20, $WS_GROUP)
$Button2 = GUICtrlCreateButton("退 出", 340 + $gj, 170, 50, 20, $WS_GROUP)

$Button4 = GUICtrlCreateCombo("", 150 + $gj, 170, 100, 20, $WS_GROUP)
$mingchen = IniReadSectionNames($pei)

GUICtrlSetData($Button4, GUICtrlRead($mingchen))
;添加右键菜单到列表框中
$zhucaidan = GUICtrlCreateContextMenu($hListView)
$tianjia = GUICtrlCreateMenuItem("添加", $zhucaidan)
$shanchu = GUICtrlCreateMenuItem("删除", $zhucaidan)
$xiugai = GUICtrlCreateMenuItem("修改", $zhucaidan)
$shuaxin = GUICtrlCreateMenuItem("刷新", $zhucaidan)

;读取配置并显示列表

$z = 0
_GUICtrlListView_DeleteAllItems($hListView)
$mingchen = IniReadSectionNames($pei)
If Not @error Then
        For $i = 1 To $mingchen[0]
                GUICtrlCreateListViewItem($mingchen[$i], $hListView)

                $IP = IniRead($pei, $mingchen[$i], "IP地址", "没有找到!")
                _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z + 1)

                $ziwangyama = IniRead($pei, $mingchen[$i], "子网掩码", "没有找到!")
                _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z + 1)

                $wangguan = IniRead($pei, $mingchen[$i], "网 关", "没有找到!")
                _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z + 1)

                $shouxuanDNS = IniRead($pei, $mingchen[$i], "首选DNS", "没有找到!")
                _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z + 1)

                $beiyongDNS = IniRead($pei, $mingchen[$i], "备用DNS", "没有找到!")
                _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z + 1)

                $MAC = IniRead($pei, $mingchen[$i], "MAC地址", "没有找到!")
                _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z + 1)
                $z += 1
        Next
EndIf
;读取配置并显示列表结束
GUISetState(@SW_SHOW)
Dim $xg = 0
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $shanchu
                        shanchu()
                Case $Button2
                        Tuichu()
                Case $tianjia
                        tianjia()
                Case $shuaxin
                        shuaxin()
                Case $xiugai
                        xiugai()
                        If $xg = 1 Then MsgBox(64, "保存成功", "修改并保存成功!")

        EndSwitch
WEnd



Func shanchu()
        $a = _GUICtrlListView_GetSelectedIndices($hListView)
        $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
        $chaifen = StringSplit($b, "|")

        $a = MsgBox(32 + 1, "提示", "请确认是否要删除以下数据        " & @CRLF & @CRLF & "     名 称:" & $chaifen[1] & @CRLF & @CRLF & "   IP地址:" & $chaifen[2] & @CRLF & @CRLF & _
                        "子网掩码:" & $chaifen[3] & @CRLF & @CRLF & "    网 关:" & $chaifen[4] & @CRLF & @CRLF & "首选DNS:" & $chaifen[5] & @CRLF & @CRLF & _
                        "备用DNS:" & $chaifen[6] & @CRLF & @CRLF & "MAC地址:" & $chaifen[7])
        If $a = 1 Then
                _GUICtrlListView_DeleteItemsSelected($hListView) ;删除选定项目
                IniDelete($pei, $chaifen[1])
                $z = _GUICtrlListView_GetItemCount($hListView)

                ;MsgBox(48, "提示", "数据删除成功")
        EndIf
EndFunc   ;==>shanchu


Func tianjia()
        GUISetState(@SW_DISABLE, $Form1)
        $Form2 = GUICreate("请输入需要添加的数据", 380, 200, -1, -1, BitOR _
                        ($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
        $Button11 = GUICtrlCreateButton("保存", 250, 150, 50, 30, $WS_GROUP)
        $Button12 = GUICtrlCreateButton("退出", 320, 150, 50, 30, $WS_GROUP)

        $Label1 = GUICtrlCreateLabel("    名称:", 20, 23, 55, 17)
        $Label2 = GUICtrlCreateLabel("  IP地址:", 20, 53, 55, 17)
        $Label3 = GUICtrlCreateLabel("子网掩码:", 20, 83, 55, 17)
        $Label4 = GUICtrlCreateLabel("    网关:", 20, 113, 55, 17)
        $Label5 = GUICtrlCreateLabel(" 首选DNS:", 200, 23, 55, 17)
        $Label6 = GUICtrlCreateLabel(" 备用DNS:", 200, 53, 55, 17)
        $Label7 = GUICtrlCreateLabel(" MAC地址:", 200, 83, 55, 17)


        $Input1 = GUICtrlCreateInput("", 80, 20, 100, 21)
        $Input2 = GUICtrlCreateInput("", 80, 50, 100, 21)
        $Input3 = GUICtrlCreateInput("", 80, 80, 100, 21)
        $Input4 = GUICtrlCreateCombo("", 80, 110, 100, 21)
        GUICtrlSetData(-1, "192.168.0.1|192.168.1.1", "192.168.1.1")

        $Input5 = GUICtrlCreateInput("", 260, 20, 100, 21)
        $Input6 = GUICtrlCreateInput("", 260, 50, 100, 21)
        $Input7 = GUICtrlCreateInput("", 260, 80, 100, 21)
        GUISetState(@SW_SHOW)

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case -3, $Button12
                                GUISetState(@SW_ENABLE, $Form1) ;启用父窗口
                                GUIDelete($Form2) ;;删除指定窗口和它包含的所有控件.
                                ExitLoop
                                ;Exit
                        Case $Button11
                                $z = _GUICtrlListView_GetItemCount($hListView)
                                $mingchen = GUICtrlRead($Input1)
                                $IP = GUICtrlRead($Input2)
                                $ziwangyama = GUICtrlRead($Input3)
                                $wangguan = GUICtrlRead($Input4)
                                $shouxuanDNS = GUICtrlRead($Input5)
                                $beiyongDNS = GUICtrlRead($Input6)
                                $MAC = GUICtrlRead($Input7)

                                If $mingchen <> "" And $IP <> "" Then
                                        IniWrite($pei, $mingchen, "名称", $mingchen)
                                        IniWrite($pei, $mingchen, "IP地址", $IP)
                                        IniWrite($pei, $mingchen, "子网掩码", $ziwangyama)
                                        IniWrite($pei, $mingchen, "网 关", $wangguan)
                                        IniWrite($pei, $mingchen, "首选DNS", $shouxuanDNS)
                                        IniWrite($pei, $mingchen, "备用DNS", $beiyongDNS)
                                        IniWrite($pei, $mingchen, "MAC地址", $MAC)

                                        GUICtrlCreateListViewItem($mingchen, $hListView)
                                        ; _GUICtrlListView_AddSubItem($hListView, $z, $mingchen, 1, $z+1)
                                        _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z + 1)
                                        _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z + 1)
                                        _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z + 1)
                                        _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z + 1)
                                        _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z + 1)
                                        _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z + 1)



                                        MsgBox(0, "保存成功", "      名称:" & $mingchen & @CRLF & @CRLF & "   IP地址:" _
                                                         & $IP & @CRLF & @CRLF & "默认子网:" & $ziwangyama & @CRLF & @CRLF & _
                                                        "      网关:" & $wangguan & @CRLF & @CRLF & " 首选DNS:" & $shouxuanDNS & @CRLF & @CRLF & _
                                                        " 备用DNS:" & $beiyongDNS & @CRLF & @CRLF & " MAC地址:" & $MAC)
                                Else
                                        MsgBox(64, "提示", "请正确输入相关内容,否则无法添加项目!")
                                EndIf
                EndSwitch
        WEnd
        Return shuaxin()
EndFunc   ;==>tianjia



Func shuaxin()
        $z = 0
        _GUICtrlListView_DeleteAllItems($hListView)
        $mingchen = IniReadSectionNames($pei)
        If Not @error Then
                For $i = 1 To $mingchen[0]
                        GUICtrlCreateListViewItem($mingchen[$i], $hListView)

                        $IP = IniRead($pei, $mingchen[$i], "IP地址", "没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $IP, 1, $z + 1)

                        $ziwangyama = IniRead($pei, $mingchen[$i], "子网掩码", "没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $ziwangyama, 2, $z + 1)

                        $wangguan = IniRead($pei, $mingchen[$i], "网 关", "没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $wangguan, 3, $z + 1)

                        $shouxuanDNS = IniRead($pei, $mingchen[$i], "首选DNS", "没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $shouxuanDNS, 4, $z + 1)

                        $beiyongDNS = IniRead($pei, $mingchen[$i], "备用DNS", "没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $beiyongDNS, 5, $z + 1)

                        $MAC = IniRead($pei, $mingchen[$i], "MAC地址", "没有找到!")
                        _GUICtrlListView_AddSubItem($hListView, $z, $MAC, 6, $z + 1)
                        $z += 1
                Next
        EndIf
EndFunc   ;==>shuaxin



Func xiugai()
        ;_GUICtrlListView_EditLabel($hListView, 0)
        GUISetState(@SW_DISABLE, $Form1)
        $Form2 = GUICreate("请输入需要修改的数据", 380, 200, -1, -1, BitOR _
                        ($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
        $Button11 = GUICtrlCreateButton("保存", 250, 150, 50, 30, $WS_GROUP)
        $Button12 = GUICtrlCreateButton("取消", 320, 150, 50, 30, $WS_GROUP)
        $Label1 = GUICtrlCreateLabel("    名称:", 20, 23, 55, 17)
        $Label2 = GUICtrlCreateLabel("  IP地址:", 20, 53, 55, 17)
        $Label3 = GUICtrlCreateLabel("子网掩码:", 20, 83, 55, 17)
        $Label4 = GUICtrlCreateLabel("    网关:", 20, 113, 55, 17)
        $Label5 = GUICtrlCreateLabel(" 首选DNS:", 200, 23, 55, 17)
        $Label6 = GUICtrlCreateLabel(" 备用DNS:", 200, 53, 55, 17)
        $Label7 = GUICtrlCreateLabel(" MAC地址:", 200, 83, 55, 17)
        $a = _GUICtrlListView_GetSelectedIndices($hListView)
        $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
        $chaifen = StringSplit($b, "|")
        $Input1 = GUICtrlCreateInput($chaifen[1], 80, 20, 100, 21)
        $Input2 = GUICtrlCreateInput($chaifen[2], 80, 50, 100, 21)
        $Input3 = GUICtrlCreateInput($chaifen[3], 80, 80, 100, 21)
        $Input4 = GUICtrlCreateInput($chaifen[4], 80, 110, 100, 21)
        $Input5 = GUICtrlCreateInput($chaifen[5], 260, 20, 100, 21)
        $Input6 = GUICtrlCreateInput($chaifen[6], 260, 50, 100, 21)
        $Input7 = GUICtrlCreateInput($chaifen[7], 260, 80, 100, 21)
        GUISetState(@SW_SHOW)

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case -3, $Button12
                                GUISetState(@SW_ENABLE, $Form1) ;启用父窗口
                                GUIDelete($Form2) ;;删除指定窗口和它包含的所有控件.
                                ExitLoop
                                ;Exit
                        Case $Button11
                                $Index = _GUICtrlListView_GetSelectedIndices($hListView) ;获取被选的索引
                                $mingchen = GUICtrlRead($Input1)
                                $IP = GUICtrlRead($Input2)
                                $ziwangyama = GUICtrlRead($Input3)
                                $wangguan = GUICtrlRead($Input4)
                                $shouxuanDNS = GUICtrlRead($Input5)
                                $beiyongDNS = GUICtrlRead($Input6)
                                $MAC = GUICtrlRead($Input7)
                                
                                If $mingchen <> "" And $IP <> "" Then ;这里还应该加入IP格式的判断才使软件有意义。
                                        $msg = MsgBox(48 + 1, "确定修改?", "      名称:" & $mingchen & @CRLF & @CRLF & "   IP地址:" _
                                                         & $IP & @CRLF & @CRLF & "默认子网:" & $ziwangyama & @CRLF & @CRLF & _
                                                        "      网关:" & $wangguan & @CRLF & @CRLF & " 首选DNS:" & $shouxuanDNS & @CRLF & @CRLF & _
                                                        " 备用DNS:" & $beiyongDNS & @CRLF & @CRLF & " MAC地址:" & $MAC & @CRLF & @CRLF & " 确定修改吗?")
                                        If $msg = 1 Then
                                                _GUICtrlListView_SetItemText($hListView, $Index, $mingchen, 0)
                                                _GUICtrlListView_SetItemText($hListView, $Index, $IP, 1)
                                                _GUICtrlListView_SetItemText($hListView, $Index, $ziwangyama, 2)
                                                _GUICtrlListView_SetItemText($hListView, $Index, $wangguan, 3)
                                                _GUICtrlListView_SetItemText($hListView, $Index, $shouxuanDNS, 4)
                                                _GUICtrlListView_SetItemText($hListView, $Index, $beiyongDNS, 5)
                                                _GUICtrlListView_SetItemText($hListView, $Index, $MAC, 6)
                                                IniDelete($pei, $chaifen[1])
                                                IniWrite($pei, $mingchen, "名称", $mingchen)
                                                IniWrite($pei, $mingchen, "IP地址", $IP)
                                                IniWrite($pei, $mingchen, "子网掩码", $ziwangyama)
                                                IniWrite($pei, $mingchen, "网 关", $wangguan)
                                                IniWrite($pei, $mingchen, "首选DNS", $shouxuanDNS)
                                                IniWrite($pei, $mingchen, "备用DNS", $beiyongDNS)
                                                IniWrite($pei, $mingchen, "MAC地址", $MAC)
                                                $xg = 1;MsgBox(64, "保存成功", "修改并保存成功!")
                                                GUISetState(@SW_ENABLE, $Form1) ;启用父窗口
                                                GUIDelete($Form2) ;;删除指定窗口和它包含的所有控件.
                                                ExitLoop
                                        EndIf
                                Else
                                        MsgBox(64, "提示", "请正确输入相关内容,否则无法修改项目!")
                                EndIf
                EndSwitch
        WEnd
        ;Return shuaxin()
EndFunc   ;==>xiugai

;退出
Func Tuichu()
        GUISetState(@SW_HIDE)
        FileDelete(@TempDir & "\*.exe") ;这行是退出后来的删除上面语句删除不起作用的情况下 万能的这句!
        FileDelete(@TempDir & "\ResHacker.ini")
        Exit
EndFunc   ;==>Tuichu
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-30 04:28 , Processed in 0.088666 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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