Well here is my code. Please be gentle
===============================================

If Not @LogonMode
    Break On
EndIf

;Declare Variables that will be used throughout
Global $SO, $Nul

;Set Code Options to On

$SO=SetOption("NoMacrosInStrings", "ON")
$SO=SetOption("NoVarsInStrings", "ON")
$SO=SetOption("Explicit", "ON")

;Declare Variables for the form

DIM $MainMenu,$MenuItem1,$MenuItem2
DIM $Button_Text,$Button_Top[],$Lbl_Info
DIM $Splitter
DIM $Button_Click[],$ControlStackImageList


Global $System,$Form_Main,$ListView1,$ListView2,$Cmb_RegEntry,$Button[5],$Panel_ControlStack
Global $Panel_MainChild,$Panel_ChildInMainChild,$ListView2Column[1],$ListView1Column[1]
Global $ListView1Item[]

;Array build information
$Button_Text = "Exit","Delete","Refresh","Restore","Backup","Save"
$Button_Top = 120,96,72,48,24,0
$Button_Click = "IWantOut()","","ListViewChange($CMB_RegEntry.SelectedIndex)","Restore($CMB_RegEntry.SelectedIndex)","Backup($CMB_RegEntry.SelectedIndex)",""


;Check for existence of KiXForms
$System = CreateObject("Kixforms.System")
If Not $System
$nul= MessageBox("KiXforms.Net Not Initiated. This Script Will Now Close.","Error",16)
Quit()
EndIf
$nul = $System.Application.EnableVisualStyles

;Build the Form
$Form_Main
= $System.Form()
$Form_Main.StartPosition = 1
$Form_Main.Size = $System.Size(600,400)
$Form_Main.Text = "Project1 - Lesson 1"
$Form_Main.SizeChanged = "Resize()"
$Form_Main.Icon = $System.Icon.FromBase64String(FormImage())

;Build the menu bar
$MainMenu = $System.MainMenu()

$MenuItem1 = $MainMenu.MenuItems.Add($System.MenuItem("File"))

$MenuItem2 = $MenuItem1.MenuItems.Add($System.MenuItem("Exit"))
$MenuItem2.Click = "IWantOut()"

$Form_Main.Menu = $MainMenu

;Add Two Panels that will allow for splitting
$Panel_MainChild = $System.Panel()
$Panel_MainChild.Borderstyle = 1
$Panel_MainChild.Dock = 5
$Nul = $Form_Main.Controls.Add($Panel_MainChild)

;Now we can add the top Listview
$ListView1 = $System.ListView()
$ListView1.Dock = 5
$ListView1.GridLines = -1 ;True
$ListView1.Checkboxes = -1 ;True
$ListView1.View = $System.View_Details
$nul = $Panel_MainChild.Controls.Add($ListView1)

;Add the ComboBox
$CMB_RegEntry
= $System.ComboBox()
;$CMB_RegEntry.DropDownWidth = 512
$CMB_RegEntry.IntegralHeight = 0
$CMB_RegEntry.ItemHeight = 13
$CMB_RegEntry.Dock = 1
$CMB_RegEntry.SelectedIndexChanged = "ListViewChange($CMB_RegEntry.SelectedIndex)"
$nul = $Panel_MainChild.Controls.Add($CMB_RegEntry)

;Add in the Splitter
$Splitter = $System.Splitter()
$Splitter.Dock = 2
$Splitter.Height = 3
$nul = $Panel_MainChild.Controls.Add($Splitter)

;Add the secondary panel to the one just created
$Panel_ChildinMainChild = $System.Panel()
$Panel_ChildinMainChild.Borderstyle = 1
$Panel_ChildinMainChild.Dock = 2
$Nul = $Panel_MainChild.Controls.Add($Panel_ChildinMainChild)

;Insert the Bottom Listview
$ListView2 = $System.ListView()
$ListView2.GridLines = -1 ;True
$ListView2.View = $System.View_Details
$ListView2.Dock = 5
$nul = $Panel_ChildInMainChild.Controls.Add($ListView2)

;Add the Label
$Lbl_Info
= $System.Label()
$Lbl_Info.BorderStyle = 1
$Lbl_Info.Dock = 1
$Lbl_Info.Text = "Entries to Delete"
$Lbl_Info.TextAlign = 32
$nul = $Panel_ChildInMainChild.Controls.Add($Lbl_Info)


;Set up Column headers for ListViews
$ListView2Column[0] = $ListView2.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left))
$ListView2Column[1] = $ListView2.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Center))
$ListView1Column[0] = $ListView1.Columns.Add($System.ColumnHeader("Entry",100,$System.HorizontalAlignment_Left))
$ListView1Column[1] = $ListView1.Columns.Add($System.ColumnHeader("Value",100,$System.HorizontalAlignment_Center))

;Add Control Stack containing panel
$Panel_ControlStack = $System.Panel()
$Panel_ControlStack.Borderstyle = 1
$Panel_ControlStack.Dock = 3
$Nul = $Panel_MainChild.Controls.Add($Panel_ControlStack)

;Build the ImageList for the ControlStack
$ControlStackImageList = $System.Imagelist()
$ControlStackImageList.ImageSize = $System.Size(16,16)
$Nul = $ControlStackImageList.Images.AddStrip($System.Bitmap.FromBase64String(ControlStackImageList()))

;Build the Buttons for the Control Stack
;Buttons are built from the bottom up
;See definition of Button_Text[] Array for clarification

For $SO = 0 to Ubound($Button)
$Button[$SO] = $System.Button()
$Button[$SO].Left = 0
$Button[$SO].TextAlign = 64
$Button[$SO].Top = $Button_Top[$SO]
$Button[$SO].Text = $Button_Text[$SO]
$Button[$SO].Click = $Button_Click[$SO]
$Button[$SO].ImageList = $ControlStackImageList
$Button[$SO].ImageAlign = 16
$Button[$SO].ImageIndex = $SO
$Nul = $Panel_ControlStack.Controls.Add($Button[$SO])
Next

;Set the widths of everything to match the form  
$Panel_ControlStack.Width
=
79
Resize()
CMB_Fill()
; Unsure why we are using a function for this, but may assume it will              
; be because of future development  
$CMB_RegEntry.SelectedIndex
= 0 ; So that the combobox does not appear to be empty upon launch


$Form_Main.Show ;Displays the Form

While $Form_Main.Visible
$Nul = Execute($Form_Main.DoEvents())
Loop
Exit 0

;================================================================================================
; Functions
;================================================================================================

Function
Resize()

DIM $Width
If $Form_Main.Width => 600
   
$Width = $Form_Main.Width - 86
Else
    $Form_Main.Width = 600
   

EndIf
If $Form_Main.Height < 400
   
$Form_Main.Height = 400
EndIf

EndFunction

;=====================================

Function
IWantOut()

Quit @ERROR
EndFunction

;=====================================

Function CMB_Fill()
Global $RegKey[1]
$RegKey[0] = $CMB_RegEntry.Items.Add("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\")
$RegKey[1] = $CMB_RegEntry.Items.Add("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\")
EndFunction

;=====================================

Function ListViewChange($Index)
DIM $Values,$Count,$Count2

;Clear out the listViews 
$ListView1.items.clear
$Listview2.items.clear
;Build and array with all of the Key Values under the selected RegKey
$Values
= Arrayenumvalue($RegKey[$Index])

;Setup counters for the filling of items
$Count = 0 ; Item Counter to build the Array of items contained within the listview
$Count2 = 0 ; Row Counter so as to build the subitems in the listview

;Loop through the Key Values array and add to the ListView
For
Each $SO In $Values
    ReDIM Preserve $ListView1Item[$Count+1]
   
;Add the Key to the first column in the Listview
    $ListView1Item[$count] = $ListView1.items.Add($system.listviewitem($SO))
   
;Add the Values of the specified key to the subitems list
    ;Increment the $Count by 1 so that it can be referenced as an individual item
    $ListView1Item[$count+1] = $Listview1.items.item($Count2).SubItems.Add($System.ListViewSubItem(ReadValue($RegKey[$Index],$SO)))
   
$Count = $Count+10
   
$Count2 = $Count2+1
Next
EndFunction

;=====================================
;Courtesy Sealeopard UDF

Function
arrayenumvalue($regsubkey)
DIM $retcode, $valuecounter, $currentvalue, $valuearray

If not KeyExist($regsubkey)
Exit 87
EndIf

$valuecounter=0
Do
$currentvalue=EnumValue($regsubkey,$valuecounter)
If not @ERROR
ReDIM preserve $valuearray[$valuecounter]
$valuearray[$valuecounter]=$currentvalue
$valuecounter=$valuecounter+1
EndIf
Until @ERROR

$arrayenumvalue=$valuearray
Exit 0
EndFunction

;=====================================
Function
Backup(
$Index)
;Backup all entries in the top ListView to the repective "RunBackup" key
DIM $Key,$Value    
For $SO = 1 To $ListView1.Items.Count
    ;Retrieve the Key Value from the ListView
    $Key = $Listview1.Items.Item($SO).text
   
;Retrieve the value from the Subitems of the ListView
    $Value = $ListView1.Items.Item($SO).subItems.Item(1).text
   

;I tried putting the $Key and $Value directly in the WriteValue, but it
;continually gave me invaled method / function call


    $Nul = WriteValue($RegKey[$index]+"RunBackup",$Key,$Value,REG_SZ)
Next
EndFunction

;=====================================
Function
Restore($Index)
;Restore all entries from the "RunBackup" Key to the Selected Key
DIM $Key, $Value
For Each $Key In ArrayEnumvalue($RegKey[$Index]+"Runbackup")
   
$Value = ReadValue($RegKey[$Index]+"RunBackup",$Key)
   
$Nul = WriteValue($RegKey[$Index],$Key,$Value,REG_SZ)
Next
ListViewChange($Index)
EndFunction

;=====================================


;================================================================================================
; Image Strings
;================================================================================================

Function
ControlStackImageList()

$ControlStackImageList = "
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

"
EndFunction

Function FormImage()
$FormImage = "
AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA////AAD/AAAAAP8A//8AAAD//wDAwMAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
AQEBAQEBAQEGBgYBAQAAAQEBAQEBBgYAAAAGAQEAAAEBAQEBAAAAAAMABgEBAAAB
AQEBAQAGAQAAAAEBAQAAAQEBAQEABgEBBgYGAQEAAAEBAQEBAAYGAAAABgEBAAAB
AQEBAQAAAAACAAYBAQAAAQEBAQEABgYAAAABAQEAAQYGBgYAAAAGAQEBAQEBAAEA
AAAAAAUABgEBAQEBAQABAAYBAQAAAAEBAQEBAQEAAQAGAQEBAQEBAQEBAQEBAAAA
AAYDAwMDAwMDAwMDAwAABAAGAwMDAwMDAwMDAwMAAAAABgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA=
"

EndFunction


Edited by Gargoyle (2007-01-05 08:47 PM)
_________________________
Today is the tomorrow you worried about yesterday.