kswdiy 发表于 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
                        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&@CRLF&@CRLF&"   IP地址:"&$chaifen&@CRLF&@CRLF& _
      "子网掩码:"&$chaifen&@CRLF&@CRLF&"    网 关:"&$chaifen&@CRLF&@CRLF&"首选DNS:"&$chaifen&@CRLF&@CRLF& _
      "备用DNS:"&$chaifen&@CRLF&@CRLF&"MAC地址:"&$chaifen)
      If $a = 1 Then
                _GUICtrlListView_DeleteItemsSelected($hListView) ;删除选定项目
                IniDelete($pei,$chaifen)
                $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
                        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))
                $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        就是在列表框中选中要重新修改的选项 如下:

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




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

谢谢诶。。。

jybb001 发表于 2010-1-31 18:21:48

你的这些数据保存在哪里呢?

jybb001 发表于 2010-1-31 18:22:55

发代码上来吧,

kswdiy 发表于 2010-1-31 19:31:44

好吧 !!!

kswdiy 发表于 2010-1-31 19:37:55

晕死啊 我都将源码发上来啊呵呵呵

没人啊 晕了

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

希望有人帮忙解决a

afan 发表于 2010-1-31 19:46:53

_GUICtrlListView_SetItemText

catcher 发表于 2010-1-31 19:55:34

:face (13):刚注意AFAN用的系统默认头像还有签名

316428696 发表于 2010-1-31 20:05:20

你的这些数据保存在哪里呢?
jybb001 发表于 2010-1-31 18:21 http://www.autoitx.com/images/common/back.gif


    配置文件里吧?

飞龙三少 发表于 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帮助文档。

llztt 发表于 2010-2-1 08:36:12

_GUICtrlListView_GetItemText用来获取LISTVIEW的列表值
需要注意的是 列表的索引,就是修改的哪一个,别弄乱了。。

kswdiy 发表于 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 就代表$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)
                GUICtrlSetData($Input2,$chaifen)
                GUICtrlSetData($Input3,$chaifen)
                GUICtrlSetData($Input4,$chaifen)
                GUICtrlSetData($Input5,$chaifen)
                GUICtrlSetData($Input6,$chaifen)
                GUICtrlSetData($Input7,$chaifen)
      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

kswdiy 发表于 2010-2-1 09:23:03

说白的就是在每个输入框都给他赋值吧
使用
;此下列语句将将选定的列表框在$chaifen中拆分为每个单独的变量例如 $chaifen 就代表$mingcheng 变量所代表的值
      $a = _GUICtrlListView_GetSelectedIndices($hListView)
      $b = _GUICtrlListView_GetItemTextString($hListView, Number($a))
      $chaifen = StringSplit($b,"|")


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

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

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

惭愧 啊小菜是也莫笑啊 大家。。。。。

afan 发表于 2010-2-1 13:38:58

回复 12# kswdiy


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

6#

kswdiy 发表于 2010-2-1 16:21:52

回复 13# afan


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

俺是 小菜   要不 老大帮我我写一段修改的 源码啊 小弟在此谢谢了

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
                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 & @CRLF & @CRLF & "   IP地址:" & $chaifen & @CRLF & @CRLF & _
                        "子网掩码:" & $chaifen & @CRLF & @CRLF & "    网 关:" & $chaifen & @CRLF & @CRLF & "首选DNS:" & $chaifen & @CRLF & @CRLF & _
                        "备用DNS:" & $chaifen & @CRLF & @CRLF & "MAC地址:" & $chaifen)
        If $a = 1 Then
                _GUICtrlListView_DeleteItemsSelected($hListView) ;删除选定项目
                IniDelete($pei, $chaifen)
                $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
                        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, 80, 20, 100, 21)
        $Input2 = GUICtrlCreateInput($chaifen, 80, 50, 100, 21)
        $Input3 = GUICtrlCreateInput($chaifen, 80, 80, 100, 21)
        $Input4 = GUICtrlCreateInput($chaifen, 80, 110, 100, 21)
        $Input5 = GUICtrlCreateInput($chaifen, 260, 20, 100, 21)
        $Input6 = GUICtrlCreateInput($chaifen, 260, 50, 100, 21)
        $Input7 = GUICtrlCreateInput($chaifen, 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)
                                                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
页: [1] 2
查看完整版本: 如何写出个修改列表框 某个列表信息 代码 请教中。。。