Gui, Add, TreeView P1 := TV_Add("P1") P1C1 := TV_Add("P1C1", P1) P1C1D1 := TV_Add("P1C1D1", P1C1) P1C1D2 := TV_Add("P1C1D2", P1C1) P1C1D3 := TV_Add("P1C1D3", P1C1) P1C1D2E1 := TV_Add("P1C1D2E1", P1C1D2) P1C1D2E2 := TV_Add("P1C1D2E2", P1C1D2) Gui, Show ;获取节点信息 top := TV_GetSelection() ;Clipboard := var_dump(gettvchild(top)) ;展开选中下所有节点 ;TV_Modify(top,"Expand") Clipboard := var_dump(expandallchild(top)) return gettvchild(id){ ret = if(firstid := TV_GetChild(id)){ ret := [],first := true ret[firstid] := "" while(nextid := TV_GetNext(first ? (firstid,first:=false) : nextid)){ ret[nextid] := "" } } for k,v in ret { if (TV_GetChild(k)) ret[k] := gettvchild(k) } return ret } expandallchild(id){ ret := "",TV_Modify(id,"Expand") if(firstid := TV_GetChild(id)){ ret := [],first := true ret[firstid] := "" while(nextid := TV_GetNext(first ? (firstid,first:=false) : nextid)){ ret[nextid] := "" } } for k,v in ret { if (TV_GetChild(k)) TV_Modify(k,"Expand"),ret[k] := expandallchild(k) } return ret } var_dump(obj,level:=0){ static str if !level str := "" if IsObject(obj) { space = loop % level space .= A_Tab str .= space "{`n" for k,v in obj { if IsObject(v) { str .= space A_Tab (RegExMatch(k,"^\d+$") ? k : """" k """") ":`n" var_dump(v,level+1) str := RegExReplace(str,"(*ANYCRLF)\n$",",`n") } else str .= space A_Tab (RegExMatch(k,"^\d+$") ? k : """" k """") ":""" RegExReplace(v,"""","""""") """,`n" } str := RegExReplace(str,"(*ANYCRLF),\n*$","`n") str .= space "}`n" } else str := obj return str } GuiClose: ; 当用户关闭 TreeView 所在的 GUI 窗口时退出脚本. ExitApp
60 queries in 4.730 seconds |