I'd love to oblige you Randy, but I haven't found a single book with anything but a cursory treatment of HTAs.
My own theory is that hardly anybody writes HTAs.
One issue is the nasty press they've gotten because HTAs can be exploited for certain nasty purposes, though in reality a desktop-resident HTA is no more dangerous than any other Windows application.
Another is that most desktop scripters don't have the DHTML skills to write them, 'cause they aren't "web johnnies."
And those with the web skills needed just aren't that interested in creating desktop applications. Most HTAs are just that - desktop applications, or web-enabled desktop applications.
So here we are...
Maybe I can help by posting your HTA with some changes to make it do more of what you'd like? I've kept a lot of it intact, and sorta raped the rest. Sorry about that.
If you copy/paste this into a blank HTA file and try it, you'll see what I mean.
Note that I have it defaulting to C:\ for testing instead of the G:\ or whatever you have above. Just change the cosntant I added near the top of the page code.
Also note the event handler at the end of the script block called window_onload(), this gets called as soon as the page finishes loading.
I've also used VBScript-style event-handler linking for the button clicks (no longer SUBMIT buttons) instead of the JavaScript-style handler lashup you were using (onclick="..." type syntax). This is done by naming the Function or Sub something like "button_onclick()."
Note also that while event handlers CAN be Functions, this is only used to return an event-cancel indication when (rarely) needed. In most cases these oughta be Subs instead as shown here. In VBScript a Function is used to return a result.
Ok, blah, blah, blah... I hope this gives you an idea anyway though. There just isn't a lot published on HTAs, but if you find something be sure to mention it back here.
<HTML>
<HEAD>
<HTA:APPLICATION
ID = "oApp"
APPLICATIONNAME = "HTA Application Tag 2001"
BORDER = "thick"
CAPTION = "yes"
SHOWINTASKBAR = "yes"
SINGLEINSTANCE = "yes"
SYSMENU = "yes"
WINDOWSTATE = "normal"
SCROLL = "yes"
SCROLLFLAT = "yes"
VERSION = "1.0"
INNERBORDER = "yes"
SELECTION = "no"
MAXIMIZEBUTTON = "yes"
MINIMIZEBUTTON = "yes"
NAVIGABLE = "yes"
CONTEXTMENU = "yes"
BORDERSTYLE = "normal"
>
<SCRIPT Language="VBScript">
<!--
' Author:- Randy Briggin
' Date:- Nov. 21, 2002
' Description:- This program executes UG programs through an hta interface
' Comments:-
Option Explicit
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const cstrDefaultDir = "C:\"
Dim strMsg1, objFso, objShell, strUgFlex
Dim strChgDir
Set objFso = CreateObject("Scripting.FileSystemObject"

Set objShell = CreateObject("WScript.shell"

strUgFlex = "UGII_LICENSE_FILE=27000@flfe1ia0.flt.acr.gmeds.com"
'--------------------------------------------------------------------------------
Sub builddir()
Dim lngOption, folStart, folEach, filEach, objOption
For lngOption = ugutil.selFileList.length - 1 To 0 Step -1
ugutil.selFileList.options.remove(lngOption)
Next
For lngOption = ugutil.selDirList.length - 1 To 0 Step -1
ugutil.selDirList.options.remove(lngOption)
Next
Set folStart = objFSO.GetFolder(strChgDir)
For Each folEach In folStart.SubFolders
Set objOption = document.createElement("option"

objOption.value = strChgDir & folEach.Name & "\"
objOption.text = strChgDir & folEach.Name & "\"
ugutil.selDirList.options.add objOption
Next
For Each filEach In folStart.Files
Set objOption = document.createElement("option"

objOption.value = filEach.Name
objOption.text = filEach.Name
ugutil.selFileList.options.add objOption
Next
Set objOption = Nothing
Set filEach = Nothing
Set folEach = Nothing
Set folStart = Nothing
End Sub
'--------------------------------------------------------------------------------
Sub btnBrowseDir_onclick()
strChgDir = ugutil.selDirList.value
builddir
End Sub
'---------------------------------------------------------------------------------
Sub btnChgDrive_onclick()
strChgDir = InputBox("Enter new Drive letter to Browse"

If strChgDir = "" Then
strChgDir = cstrDefaultDir
Else
strChgDir = Left(strChgDir, 1) & ":\"
End If
builddir
End Sub
'---------------------------------------------------------------------------------
Function chk()
strMsg1 = "Looks Good"
MsgBox strMsg1
End Function
'----------------------------------------------------------------------------------
Sub window_onload()
strChgDir = cstrDefaultDir
builddir
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
<marquee ALIGN="Center" LOOP="infinite" BEHAVIOR="slide"
BGCOLOR="#FFFFFF" DIRECTION="left" HEIGHT=30 WIDTH=100>
<H1><FONT color=#0000FF>Delphi</FONT></H1>
</marquee>
</CENTER>
<H1><CENTER>Unigraphics Utility Menu</CENTER></H1>
<HR>
<BR>
<FORM NAME=ugutil>
<TABLE COLUMNS="2">
<TD ALIGN="left" VALIGN="top">
<LEFT>
<FIELDSET STYLE="font-size:20px; WIDTH:227px;">
<LEGEND><FONT size=5 color=blue>ACTIONS</FONT></LEGEND><BR>
<SPAN STYLE="color:green;" ONCLICK="chk()">Inspect Partfile Structure</SPAN><BR>
<SPAN STYLE="color:green;" ONCLICK="chk()">Inspect Partfile</SPAN><BR>
<SPAN STYLE="color:green;" ONCLICK="chk()">Convert Partfile</SPAN><BR><BR><BR>
<SPAN STYLE="color:red;" ONCLICK="chk()">Exit</SPAN>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
</FIELDSET>
</LEFT>
</TD>
<TD ALIGN="center" VALIGN="middle">
<H3>Directory Files<BR>
<SELECT id="selDirList" SIZE=11>
</SELECT>
<SELECT id="selFileList" SIZE=11>
</SELECT><BR><BR><BR><BR>
<INPUT type="button" id="btnChgDrive" value=" Change Drive "><BR>
<INPUT type="button" id="btnBrowseDir" value="Browse Directory"><BR>
</TD>
</FORM>
</BODY>
</HTML>
Good luck!