$Option EXPLICIT
$Include "RapidQ.inc"

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
        (hWnd As Long, nIndex As Long, dwNewLong As Long) As Long

Declare Sub MainForm_OnShow
Declare Sub MainForm_OnClose

Declare Sub mGet_OnClick

Const GWL_HWNDPARENT = (-8)
Const HWND_DESKTOP = 0

Dim CmdLine As String

Dim StrList As QStringList

Create MainForm As QForm
  Caption  = " Get USB Info"
  Width    = 640
  Height   = 480
  Left     = (Screen.Width\2)-(MainForm.Width\2)
  Top      = (Screen.Height\2)-(MainForm.Height\2)
  OnShow   = MainForm_OnShow
  OnClose  = MainForm_OnClose
  Create MainMenu As QMainMenu
    Create mGet As QMenuItem
      Caption = "Get Info"
      OnClick = mGet_OnClick
    End Create
  End Create
  Create RichEdit As QRichEdit
    Align      = alClient
    ScrollBars = ssBoth
    Font.Name  = "Courier New"
    Font.Size  = 10
    WordWrap   = False
    PlainText  = True
  End Create
End Create

SetWindowLong(MainForm.Handle, GWL_HWNDPARENT, HWND_DESKTOP)
SetWindowLong(Application.Handle, GWL_HWNDPARENT, MainForm.Handle)

MainForm.ShowModal

Sub MainForm_OnShow
End Sub

Sub MainForm_OnClose
    Application.Terminate
End Sub

Sub mGet_OnClick
    StrList.Clear
    RichEdit.Clear
    RichEdit.AddString("Please wait...")
    RichEdit.AddString("")
    RichEdit.AddString("Getting Hubs...")
    MainForm.Repaint

    If FileExists("USBhubs.txt") Then Kill("USBhubs.txt")
    CmdLine = Environ$("windir") & "\System32\Wscript.exe " & CurDir$ & "\GetUSBhubs.vbs"
    Shell(CmdLine)

    If FileExists("USBhubs.txt") Then
      StrList.LoadFromFile("USBhubs.txt")
      RichEdit.AddStrings(StrList.Text)
      Kill("USBhubs.txt")
      StrList.Clear
    Else
      ShowMessage("Script Error!")
    End If

    RichEdit.AddString("")
    RichEdit.AddString("Getting Controllers...")
    MainForm.Repaint

    If FileExists("USBcontrollers.txt") Then Kill("USBcontrollers.txt")
    CmdLine = Environ$("windir") & "\System32\Wscript.exe " & CurDir$ & "\GetUSBcontrollers.vbs"
    Shell(CmdLine)

    If FileExists("USBcontrollers.txt") Then
      StrList.LoadFromFile("USBcontrollers.txt")
      RichEdit.AddStrings(StrList.Text)
      Kill("USBcontrollers.txt")
    Else
      ShowMessage("Script Error!")
    End If

    RichEdit.AddString("Done.")
    StrList.Clear
End Sub
