Page 1 of 1 1
Topic Options
#189942 - 2008-09-30 05:39 PM ScriptOMatic .Net v2.0
Arend_ Moderator Offline
MM club member
*****

Registered: 2005-01-17
Posts: 1870
Loc: Hilversum, The Netherlands
This is version 2.0 of the ScriptOMatic.
Only thing that has really changed is that now ALL class types are available. Well "All" means the ones available to you on your computer.
For instance if you have installed SNMP WMI support then it won't show up in the list either. In version 1.0 there were only 3 versions available and Win32 was basically only a filter. This also results in shorter code.

Anyway without further ado:
 Code:
Break On
$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

$Form1 = $System.Form()
$Form1.Left = 0
$Form1.StartPosition = 0  ;FormStartPosition_Manual
$Form1.Size = $System.Size(604,588) ;(Width,Height)
$Form1.Text = "ScriptOMatic .Net v2.0"
$Form1.Top = 0
$Form1.TopMost = 0  ;False

$Button1 = $System.Button()
$Button1.Anchor = 9 ;Top,Right
$Button1.Left = 430
$Button1.Text = "Run"
$Button1.Top = 10
$Button1.Width = 40
$Button1.Click = "RunScript()"
$nul = $Form1.Controls.Add($Button1)

$Button2 = $System.Button()
$Button2.Anchor = 9 ;Top,Right
$Button2.Left = 470
$Button2.Text = "Save"
$Button2.Top = 10
$Button2.Width = 40
$Button2.Click = "SaveScript()"
$nul = $Form1.Controls.Add($Button2)

$Button3 = $System.Button()
$Button3.Anchor = 9 ;Top,Right
$Button3.Left = 510
$Button3.Text = "Open"
$Button3.Top = 10
$Button3.Width = 40
$Button3.Click = "OpenScript()"
$nul = $Form1.Controls.Add($Button3)

$Button4 = $System.Button()
$Button4.Anchor = 9 ;Top,Right
$Button4.Left = 550
$Button4.Text = "Quit"
$Button4.Top = 10
$Button4.Width = 40
$Button4.Click = "$$Form1.Hide"
$nul = $Form1.Controls.Add($Button4)

$TextBox1 = $System.TextBox()
$TextBox1.Anchor = 15  ;Top,Left,Bottom,Right
$TextBox1.BackColor = $System.Color.FromName("Control")
$TextBox1.Height = 330
$TextBox1.Left = 10
$TextBox1.MultiLine = -1  ;True
$TextBox1.ReadOnly = -1  ;True
$TextBox1.ScrollBars = 3  ;Both
$TextBox1.Text = ""
$TextBox1.Top = 82 ;70
$TextBox1.Width = 580
$TextBox1.Font = $System.Font("Courier New",8.25,0) ;Regular
$nul = $Form1.Controls.Add($TextBox1)

$TextBox2 = $System.TextBox()
$TextBox2.Anchor = 14  ;Left,Bottom,Right
$TextBox2.BackColor = $System.Color.FromName("Control")
$TextBox2.Height = 110
$TextBox2.Left = 10
$TextBox2.MultiLine = -1  ;True
$TextBox2.ReadOnly = -1  ;True
$TextBox2.ScrollBars = 2  ;Vertical
$TextBox2.Text = ""
$TextBox2.Top = 430
$TextBox2.Width = 580
$TextBox2.Font = $System.Font("Courier New",8.25,0) ;Regular
$nul = $Form1.Controls.Add($TextBox2)

$Label1 = $System.Label()
$Label1.Anchor = 14  ;Left,Bottom,Right
$Label1.BorderStyle = 0
$Label1.Height = 20
$Label1.Left = 10
$Label1.Text = "Methods:"
$Label1.Top = 415
$nul = $Form1.Controls.Add($Label1)

$GroupBox1 = $System.GroupBox()
$GroupBox1.Left = 10
$GroupBox1.Text = "Class Types"
$GroupBox1.Top = 32
$GroupBox1.Width = 210
$GroupBox1.Height = 45
$nul = $Form1.Controls.Add($GroupBox1)

$GroupBox2 = $System.GroupBox()
$GroupBox2.Anchor = 1 ;Top
$GroupBox2.Left = 225
$GroupBox2.Text = "Script Type"
$GroupBox2.Top = 32
$GroupBox2.Width = 110
$GroupBox2.Height = 45
$nul = $Form1.Controls.Add($GroupBox2)

$GroupBox3 = $System.GroupBox()
$GroupBox3.Anchor = 9  ;Top,Right
$GroupBox3.Left = 340
$GroupBox3.Text = "VBS Runtime"
$GroupBox3.Top = 32
$GroupBox3.Width = 112
$GroupBox3.Height = 45
$GroupBox3.Hide
$nul = $Form1.Controls.Add($GroupBox3)

$ComboBox1 = $System.ComboBox()
$ComboBox1.Anchor = 13 ;Left,Top,Right
$ComboBox1.IntegralHeight = 0
$ComboBox1.ItemHeight = 25
$ComboBox1.Left = 10
$ComboBox1.Text = "Select a Class"
$ComboBox1.Top = 10
$ComboBox1.Width = 410
$ComboBox1.Sorted = 1
$ComboBox1.SelectedIndexChanged = "$$=CheckType($$ComboBox2.Text)"
;$ComboBox1.Enabled = 0
$nul = $Form1.Controls.Add($ComboBox1)

$ComboBox2 = $System.ComboBox()
$ComboBox2.Anchor = 13 ;Left,Top,Right
$ComboBox2.IntegralHeight = 0
$ComboBox2.ItemHeight = 25
$ComboBox2.Left = 5
$ComboBox2.Text = "SELECT A CLASS TYPE HERE!"
$ComboBox2.Top = 15
$ComboBox2.Width = 200
$ComboBox2.Sorted = 1
$ComboBox2.SelectedIndexChanged = "$$=EnumClasses($$ComboBox2.Text)"
$nul = $GroupBox1.Controls.Add($ComboBox2)

$RadioButton5 = $System.RadioButton()
$RadioButton5.Appearance = 1  ;Button
$RadioButton5.Checked = -1  ;True
$RadioButton5.Left = 5
$RadioButton5.Text = "KIX"
$RadioButton5.TextAlign = 32  ;MiddleCenter
$RadioButton5.Top = 15
$RadioButton5.Width = 50
$RadioButton5.Click = "$$=CheckType($$ComboBox2.Text)"
$nul = $GroupBox2.Controls.Add($RadioButton5)

$RadioButton6 = $System.RadioButton()
$RadioButton6.Appearance = 1  ;Button
$RadioButton6.Left = 55
$RadioButton6.Text = "VBS"
$RadioButton6.TextAlign = 32  ;MiddleCenter
$RadioButton6.Top = 15
$RadioButton6.Width = 50
$RadioButton6.Click = "$$=CheckType($$ComboBox2.Text)"
$nul = $GroupBox2.Controls.Add($RadioButton6)

$RadioButton7 = $System.RadioButton()
$RadioButton7.Appearance = 1  ;Button
$RadioButton7.Checked = -1  ;True
$RadioButton7.Left = 5
$RadioButton7.Text = "CScript"
$RadioButton7.TextAlign = 32  ;MiddleCenter
$RadioButton7.Top = 15
$RadioButton7.Width = 50
$RadioButton7.Click = "$$=CheckType($$ComboBox2.Text)"
$nul = $GroupBox3.Controls.Add($RadioButton7)

$RadioButton8 = $System.RadioButton()
$RadioButton8.Appearance = 1  ;Button
$RadioButton8.Left = 55
$RadioButton8.Text = "WScript"
$RadioButton8.TextAlign = 32  ;MiddleCenter
$RadioButton8.Top = 15
$RadioButton8.Width = 52
$RadioButton8.Click = "$$=CheckType($$ComboBox2.Text)"
$nul = $GroupBox3.Controls.Add($RadioButton8)

$OpenFileDialog1 = $System.OpenFileDialog()
$OpenFileDialog1.InitialDirectory = "@SCRIPTDIR"
$OpenFileDialog1.Filter = "KiX files (*.kix)|*.kix|VBS files (*.vbs)|*.vbs|All files (*.*)|*.*"
$OpenFileDialog1.FilterIndex = 1
$OpenFileDialog1.RestoreDirectory = 1 ;True

$SaveFileDialog1 = $System.SaveFileDialog()
$SaveFileDialog1.InitialDirectory = "@SCRIPTDIR"
$SaveFileDialog1.Filter = "KiX files (*.kix)|*.kix|VBS files (*.vbs)|*.vbs|All files (*.*)|*.*"
$SaveFileDialog1.FilterIndex = 1
$SaveFileDialog1.RestoreDirectory = 1 ;True

$Form2 = $System.Form()
$Form2.Text = "Loading Classes..."
$Form2.ControlBox = 0  ;False
$Form2.StartPosition = 1  ;FormStartPosition_CenterScreen
$Form2.Size = $System.Size(250,60) ;(Width,Height)

$PBar = $System.ProgressBar()
$PBar.Width = 242
$PBar.Height = 25
$PBar.Style = "1"
$PBar.Center
$nul = $Form2.Controls.Add($PBar)

$=EnumNameSpaces("root")
$Form1.Center
$Form1.Show  ;Displays the Form

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

Function CheckType($strRoot)
  Select
    Case $RadioButton5.Checked = -1
      $GroupBox3.Hide
      ListClassKIX($strRoot)
    Case $RadioButton6.Checked = -1
      $GroupBox3.Show
      ListClassVBS($strRoot)
  EndSelect
EndFunction

Function EnumNameSpaces($strNameSpace)
  $ComboBox2.Enabled = 0
  Dim $objWMIService, $colNameSpaces, $objNameSpace
  $=$ComboBox2.Items.Add($strNameSpace)
  $objWMIService = GetObject("winmgmts:\\.\"+$strNameSpace)
  $colNameSpaces = $objWMIService.InstancesOf("__NAMESPACE")
  For Each $objNameSpace In $colNameSpaces
    EnumNameSpaces($strNameSpace+"\"+$objNameSpace.Name)
  Next
  $ComboBox2.Enabled = 1
EndFunction

Function EnumClasses($Root)
  $Form2.Show
  $PBar.Value = 0
  $ComboBox1.Items.Clear
  $ComboBox1.Enabled = 0
  Dim $objWMIService, $objClass, $IsQ
  $objWMIService = GetObject("winmgmts:\\.\"+$Root)
  $PBar.Max = $objWMIService.SubclassesOf().Count
  For Each $objClass in $objWMIService.SubclassesOf()
    $PBar.Value = $PBar.Value + 1
    $IsQ = 0
    For Each $Qualifier in $objClass.Qualifiers_
      If Instr($Qualifier.Name, "ASSOCIATION")
        $IsQ = 1
      Endif
    Next
    If $IsQ = 0
      $=$ComboBox1.Items.Add($objClass.Path_.Class)
    Endif
  Next
  $Form2.Hide
  $ComboBox1.Enabled = 1
  $objWMIService = ""
EndFunction

Function ListClassKiX($strRoot)
  Dim $Class, $Script, $Script2, $objWMIService, $objClass, $objProperty, $objMethod
  If $ComboBox1.Text <> "Begin by selecting a class"
    $Class = $ComboBox1.Text
    $TextBox1.Text = ""
    $TextBox2.Text = ""
    $objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\"+$strRoot)
    $objClass = $objWMIService.Get($Class)
    $Script = 'Break On' + @CRLF
    $Script = $Script + '$$strComputer = "."' + @CRLF
    $Script = $Script + '$$objWMIService = GetObject("winmgmts:\\" + $$strComputer + "\$strRoot")' + @CRLF
    $Script = $Script + '$$colItems = $$objWMIService.ExecQuery("Select * from $Class",,48)' + @CRLF
    $Script = $Script + 'For Each $$objItem in $$colItems' + @CRLF
    For Each $objProperty in $objClass.properties_
      $Prop = $objProperty.name
      If $objProperty.IsArray
        $Script = $Script + '  For Each $$Item in $objItem.' + $Prop + @CRLF
        $Script = $Script + '    "*' + $Prop + ': " + $$Item ?' + @CRLF
        $Script = $Script + '  Next' + @CRLF
      Else
        $Script = $Script + '  "' + $Prop + ': " + $$objItem.' + $Prop + ' ?' + @CRLF
      Endif
    Next
    $Script = $Script + '  ?' + @CRLF + 'Next' + @CRLF
    For Each $objMethod in $objClass.methods_
      $Method = $objMethod.name
        $Script2 = $Script2 + ' ' + $Method + ': $$objItem.' + $Method + @CRLF
    Next
    $script = $script + @CRLF + "? 'Press Any Key to Close the Window'" + @CRLF + "Get $"
    $TextBox1.Text = $Script
    $TextBox2.Text = $Script2
  Else
    $TextBox1.Text = ""
    $TextBox2.Text = ""
  Endif
  $objWMIService = ""
EndFunction

Function ListClassVBS($strRoot)
  Dim $Class, $Script, $Script2, $objWMIService, $objClass, $objProperty, $objMethod
  If $ComboBox1.Text <> "Begin by selecting a class"
    $Class = $ComboBox1.Text
    $TextBox1.Text = ""
    $TextBox2.Text = ""
    $objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\"+$strRoot)
    $objClass = $objWMIService.Get($Class)
    $Script = 'On Error Resume Next' + @CRLF
    $Script = $Script + 'strComputer = "."' + @CRLF
    $Script = $Script + 'Set objWMIService = GetObject("winmgmts:\\" + strComputer + "\$strRoot")' + @CRLF
    $Script = $Script + 'Set colItems = objWMIService.ExecQuery("Select * from $Class",,48)' + @CRLF
    $Script = $Script + 'For Each objItem in colItems' + @CRLF
    For Each $objProperty in $objClass.properties_
      $Prop = $objProperty.name
      If $objProperty.IsArray
        $Script = $Script + '  For Each Item in objItem.' + $Prop + @CRLF
        $Script = $Script + '    WScript.Echo "*' + $Prop + ': " & Item' + @CRLF
        $Script = $Script + '  Next' + @CRLF
      Else
        $Script = $Script + '  WScript.Echo "' + $Prop + ': " & objItem.' + $Prop + @CRLF
      Endif
    Next
    $Script = $Script + '  WScript.Echo' + @CRLF + 'Next' + @CRLF
    If $RadioButton7.Checked = -1
      $Script = $Script + @CRLF + 'WScript.Echo "Press Any Key to Close the Window"' + @CRLF + 'Wscript.StdIn.ReadLine'
    EndIf
    For Each $objMethod in $objClass.methods_
      $Method = $objMethod.name
        $Script2 = $Script2 + ' ' + $Method + ': objItem.' + $Method + @CRLF
    Next
    $TextBox1.Text = $Script
    $TextBox2.Text = $Script2
  Else
    $TextBox1.Text = ""
    $TextBox2.Text = ""
  Endif
  $objWMIService = ""
EndFunction

Function RunScript()
  Dim $FSO, $strTmpName, $objScript, $objShell, $strComdLine, $nul
  $FSO = CreateObject("Scripting.FileSystemObject")
  $objShell = CreateObject("WScript.Shell")
  If $RadioButton5.Checked = -1
    $strTmpName = "temp_script.kix"
    $objScript = $FSO.CreateTextFile($strTmpName)
    $objScript.Write($TextBox1.Text)
    $objScript.Close
    If "@SCRIPTEXE"<>"wkix32.exe"
      $strCmdLine = "kix32.exe"
    Else
      $strCmdLine = "wkix32.exe"
    EndIf
    If @SCRIPTDIR<>@CURDIR and Exist(@SCRIPTDIR + "\" + @SCRIPTEXE)
      $strCmdLine = '"' + @SCRIPTDIR + $strCmdLine + '" "' + $strTmpName + '"'
    Else
      $strCmdLine = '"' + $strCmdLine + ' "' + $strTmpName + '"'
    EndIf
    $nul = $objShell.Run($strCmdLine)
  Else
    $strTmpName = "temp_script.vbs"
    $objScript = $FSO.CreateTextFile($strTmpName)
    $objScript.Write($TextBox1.Text)
    $objScript.Close
    If $RadioButton7.Checked = -1
      $strCmdLine = "cscript.exe"
    Else
      $strCmdLine = "wscript.exe"
    EndIf
    If @SCRIPTDIR<>@CURDIR
      $strCmdLine = '"' + @SCRIPTDIR + $strCmdLine + '" "' + $strTmpName + '"'
    Else
      $strCmdLine = '"' + $strCmdLine + ' "' + $strTmpName + '"'
    EndIf
    $nul = $objShell.Run($strCmdLine)
  EndIf
EndFunction

Function SaveScript()
  Dim $dlgSave, $FSO, $strTmpName, $objScript
  $FSO = CreateObject("Scripting.FileSystemObject")
  If $RadioButton5.Checked = -1
    $strTmpName = "temp_script.kix"
    $SaveFileDialog1.FilterIndex = 1
    $SaveFileDialog1.FileName = $ComboBox1.Text
  Else
    $strTmpName = "temp_script.vbs"
    $SaveFileDialog1.FilterIndex = 2
    $SaveFileDialog1.FileName = $ComboBox1.Text
  EndIf
  $objScript = $FSO.CreateTextFile($strTmpName)
  $objScript.Write($TextBox1.Text)
  $objScript.Close
  If $SaveFileDialog1.ShowDialog() = 1
    $dlgSave = $SaveFileDialog1.FileName
  EndIf
  Copy $strTmpName $dlgSave
EndFunction

Function OpenScript()
  Dim $dlgOpen, $FSO, $Script, $objFile
  If $OpenFileDialog1.ShowDialog() = 1
    $dlgOpen = $OpenFileDialog1.Filename
    $FSO = CreateObject("Scripting.FileSystemObject")
    $objFile = $FSO.OpenTextFile($dlgOpen)
    $Script = $objFile.ReadAll()
    $TextBox1.Text = $Script
    $objFile.Close
    $TextBox1.Show
  EndIf
EndFunction

Top
#189946 - 2008-09-30 06:40 PM Re: ScriptOMatic .Net v2.0 [Re: Arend_]
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
Works great !
Top
#189947 - 2008-09-30 08:53 PM Re: ScriptOMatic .Net v2.0 [Re: Shawn]
Glenn Barnas Administrator Offline
KiX Supporter
*****

Registered: 2003-01-28
Posts: 4306
Loc: New Jersey
Less filling !
_________________________
Actually I am a Rocket Scientist! \:D

Top
#189949 - 2008-09-30 10:00 PM Re: ScriptOMatic .Net v2.0 [Re: Glenn Barnas]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
so, this is different from KiXomatic, how?
_________________________
!

download KiXnet

Top
#189951 - 2008-10-01 08:52 AM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Arend_ Moderator Offline
MM club member
*****

Registered: 2005-01-17
Posts: 1870
Loc: Hilversum, The Netherlands
Lonk:

1. KixOMatic only does root\CIMV2, this one has ALL namespaces available.
2. KiXOMatic filters CIMV2 by only showing namespaces that begin with "Win32", this one doesn't.
3. KiXOMatic doesn't show Methods, only Properties, this one shows both.

And this one is written in KixForms .Net ;\)

Top
#189965 - 2008-10-01 03:30 PM Re: ScriptOMatic .Net v2.0 [Re: Arend_]
Gargoyle Offline
MM club member
*****

Registered: 2004-03-09
Posts: 1597
Loc: Valley of the Sun (Arizona, US...
Having not run it as of yet (no time), does it also return the current value of properties?
_________________________
Today is the tomorrow you worried about yesterday.

Top
#192315 - 2009-02-17 09:41 AM Re: ScriptOMatic .Net v2.0 [Re: Gargoyle]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
I got this on my console:
__NAMESPACE__NAMESPACE__NAMESPACE__NAMESPACE__NAMESPACE__NAMESPACE
_________________________
!

download KiXnet

Top
#192316 - 2009-02-17 10:06 AM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
also, this one doesn't allow editing the script.

$TextBox1.ReadOnly = -1 ;True

why is that???
_________________________
!

download KiXnet

Top
#192318 - 2009-02-17 11:29 AM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
weird...
after 3rd run, I got way more properties... so weird.

wonder what changed the behaviour.
_________________________
!

download KiXnet

Top
#192347 - 2009-02-18 09:13 PM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
NTDOC Administrator Offline
Administrator
*****

Registered: 2000-07-28
Posts: 11577
Loc: CA
Possibly by calling it registered namespaces that were previously not registered.
Top
#192350 - 2009-02-19 01:14 AM Re: ScriptOMatic .Net v2.0 [Re: NTDOC]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
the test machine was running vista and I did disable UAC in the between.

anyhow, still getting the namespace trash on the console.
_________________________
!

download KiXnet

Top
#192469 - 2009-02-24 02:28 PM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
run doesn't work from unc path.
_________________________
!

download KiXnet

Top
#192682 - 2009-03-03 08:45 AM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Arend_ Moderator Offline
MM club member
*****

Registered: 2005-01-17
Posts: 1870
Loc: Hilversum, The Netherlands
I never used it from a unc path.
But I am also running Vista x64, and I don't have any of the problems you describe. UAC is disabled with me too.

Top
#192685 - 2009-03-03 11:12 AM Re: ScriptOMatic .Net v2.0 [Re: Arend_]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
well, all of the problems are gone except:
a) run from unc path
b) can't edit script directly in the scriptomatic
_________________________
!

download KiXnet

Top
#192743 - 2009-03-09 11:26 AM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Arend_ Moderator Offline
MM club member
*****

Registered: 2005-01-17
Posts: 1870
Loc: Hilversum, The Netherlands
a) Will look into it when I have time.
b) Fix it by changing this line:
 Code:
$TextBox1.ReadOnly = -1  ;True

to
 Code:
$TextBox1.ReadOnly = 0  ;False

Top
#192745 - 2009-03-09 12:05 PM Re: ScriptOMatic .Net v2.0 [Re: Arend_]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
I did that on my hd, yep.
_________________________
!

download KiXnet

Top
#192752 - 2009-03-09 08:44 PM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
tried on new machine. this one is xp.
can't run the script.
I mean, I hit the run, but nothing happens.
I hit it, again and again, nada.
_________________________
!

download KiXnet

Top
#192841 - 2009-03-12 09:44 AM Re: ScriptOMatic .Net v2.0 [Re: Lonkero]
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22343
Loc: OK
one more weird thing I didn't bother to investigate yet.
last 2 attempts I've tried to use the script it halts at "loading classes" on root\cimv2

I will try a reboot fix later today if it's some odd vista thing...
_________________________
!

download KiXnet

Top
Page 1 of 1 1


Moderator:  Shawn, ShaneEP, Arend_, Jochen, Radimus, Glenn Barnas, Allen, Mart 
Hop to:
Shout Box

Who's Online
0 registered and 145 anonymous users online.
Newest Members
Jodey, Hiker, GTRoberts, KatieQuinn, Brennnnn
17684 Registered Users

Generated in 0.041 seconds in which 0.012 seconds were spent on a total of 13 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org