Script Tips

Step Up to Scripting with KIXforms

Adding a GUI to your scripting work with KiXforms, part 2.

It's been a while since we talked about creating a GUI for working with scripts (and my editor says to blame him for the long respite). Particularly, we talked about using KIXforms to do it and I showed you a nifty sample to get you started down that road last time.

Let’s get into it by walking through the creation of a simple dialog (see Fig. 1) The script contains a main form, an image (known as a PictureBox), some text (known as a label) and a button. The button is instructed to end the script. It's not much, but it's a very good start to seeing just how KiXforms operates and how you can take advantage of it in VBScript.

Window via KIXforms
Figure 1. Now, doesn't working with scripts in this territory seem a bit more familiar?Using KiXforms you can make your scripts look much better than
the standard console window full of text.

First, you need to create an object variable that references the KiXforms DLL. The Type Library name is “KiXtart.System,” so begin by setting this object variable:

Set System = CreateObject("KiXtart.System")

KiXforms is processed from the top to the bottom of the script, so you must specify any objects in the order they are needed. Therefore, start by establishing the form that will hold the image, text and button. First, set another object variable to create a reference to a form object. Then set the size (height and width) and text (that appears as the window title) for the form:

Set Form = System.Form()
Form.Height = 309
Form.Width = 281
Form.Text = "Welcome"

Now that you have a form, it's time to add text. Doing this is much the same as how you create the form, but in addition to its size you must also tell KiXforms where to place the text items. The location is specified by indicating the number of pixels from the top of the form, and from the left of the form:

Set Label = Form.Controls.Label
Label.Height = 38
Label.Width = 250
Label.Top = 199
Label.Left = 11
Label.Text = "Welcome to the network, by " &_
   " using this system you agree to the " &_
   " corporate policy for this network."

The same properties need to be set for the image, which is referred to as a PictureBox. Additionally, you also specify a picture property that identifies the path to the image you want to display:

Set PictureBox = Form.Controls.PictureBox
PictureBox.Height = 175
PictureBox.Width = 250
PictureBox.Top = 12
PictureBox.Left = 11
PictureBox.Picture = "c:\windows\winnt256.bmp"

Finally, specify the size, location and text for the button. Here, you'll also set your first event. When the button is clicked, you'll want to run a function called ExitScript. This is set as a string which is executed when the event is triggered (in this case the OnClick event that happens when someone clicks the button).

Set Button = Form.Controls.Button
Button.Height = 23
Button.Width = 75
Button.Top = 240
Button.Left = 100
Button.Text = "OK"
Button.OnClick = "ExitScript()"

Tech Help—Just An
E-Mail Away

Got a Windows, Exchange or virtualization question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to the MCPmag.com editors at [email protected]; the best questions get answered in this column and garner the questioner with a nifty Redmond T-shirt.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message, but submit the requested information for verification purposes.)

With your form all laid out, you now need to get the script in a loop where it will look for any events to be triggered. The script has called out all the details of the form, so it is ready to show to the user. Therefore, set the visible property to true and the form appears on the screen. Without the Do/While loop you see below, the script would end and the user would never catch sight of your nice form. So after setting the form to visible, instruct the script to execute the events of the form as long as the form remains visible:

Form.Visible = "True"
Do While Form.Visible
   Execute(Form.DoEvents)
Loop

The DoEvents method runs as long as the script is visible and fires any specified events for the script. In the case of this example, the only event you've handled is the clicking of the button. When the button is clicked, you have it running a function called ExitScripts; here's the function to complete the script:

Function ExitScript()
   WScript.Echo "Exiting Script..."
   WScript.Sleep 900
   WScript.Quit
End Function

This provides most of the structure you need to get started, and you can get plenty of help from the help file provided along with the KiXforms binary at http://www.kixforms.org. In the next (and last) article in this short series on KiXforms, I’ll cover some of the more advanced controls that you can’t get using a traditional HTA graphical interface -- this is where the freely available KiXforms really shines as a unique and powerful tool for your scripts.

About the Author

Bob Kelly is president and co-founder of AdminScriptEditor.com, home to an integrated suite of scripting tools and a shared library of scripts and language help. He has authored books on scripting and desktop administration and several white papers. Bob also owns and operates AppDeploy.com, where he writes and produces videos on topics related to software deployment.

comments powered by Disqus
Most   Popular