CE递归遍历主界面控件
local fnGetSpace = function(n) local ret = "" for i = 1,n do ret = (ret .. "-") end return ret end enum_ui = function(ui,level) if not ui then return end print(fnGetSpace(level) .. ui:getClassName() .. ":" .. ui:getName()) if not ui.getControlCount then return end for i = 0,ui:getControlCount() - 1 do enum_ui(ui:getControl(i),level + 1) end end local ui = getMainForm() local level = 0 enum_ui(ui,level)
结果:
TMainForm:MainForm
-TSplitter:Splitter1
-TPanel:Panel1
--TAddresslist:
---TTreeviewWithScroll:
---THeaderControl:
-TPanel:Panel4
--TLabel:Label7
--TSpeedButton:advancedbutton
--TSpeedButton:CommentButton
-TPanel:Panel5
--TLabel:ProcessLabel
--TLabel:foundcountlabel
--TLabel:ScanText
--TLabel:lblScanType
--TLabel:lblValueType
--TSpeedButton:LoadButton
--TSpeedButton:SaveButton
--TLabel:Label6
--TSpeedButton:SpeedButton2
--TSpeedButton:SpeedButton3
--TLabel:Label5
--TLabel:Label38
--TLabel:Label57
--TLabel:Label59
--TLabel:Label61
--TCheckBox:cbSpeedhack
--TButton:btnNewScan
--TCheckBox:cbUnicode
--TGroupBox:gbScanOptions
---TPanel:Panel2
----TCheckBox:cbCopyOnWrite
----TCheckBox:cbWritable
----TCheckBox:cbExecutable
---TPanel:Panel3
----TMemo:FromAddress
----TMemo:ToAddress
----TLabel:Label2
----TLabel:Label1
---TPanel:Panel6
----TCheckBox:cbFastScan
----TEdit:edtAlignment
----TCheckBox:cbPauseWhileScanning
----TRadioButton:rbfsmLastDigts
----TRadioButton:rbFsmAligned
--TButton:btnNextScan
--TComboBox:ScanType
--TComboBox:VarType
--TButton:btnMemoryView
--TButton:btnAddAddressManually
--TProgressBar:ProgressBar1
--TCheckBox:cbHexadecimal
--TButton:UndoScan
--TRadioButton:rbBit
--TRadioButton:rbDec
--TEdit:scanvalue
--TCheckBox:cbCaseSensitive
--TPanel:Panel7
---TSpeedButton:sbOpenProcess
--TPanel:pnlFloat
---TRadioButton:rt3
---TRadioButton:rt1
---TRadioButton:rt2
--TCheckBox:cbUnrandomizer
--TButton:Button2
--TButton:Button4
--TPanel:LogoPanel
---TImage:Logo
---TSpeedButton:SettingsButton
--TPanel:Panel14
---TLabel:Label54
---TLabel:lblSH0
---TLabel:lblSH20
---TButton:btnSetSpeedhack2
---TEdit:editSH2
---TTrackBar:tbSpeed
--TLabel:lblcompareToSavedScan
--TLabel:Label3
--TListView:Foundlist3
---TCustomListViewEditor:
--TCheckBox:cbFloatSimple
遍历找到的地址:
local found_list = getCurrentMemscan() local addr_count = found_list.foundList:getCount() for i = 0,addr_count - 1 do local found_addr = getAddress(found_list.foundList:GetAddress(i)) print(found_addr) end