OPTION EXPLICIT
DIM oATO : CALL Instantiate (oATO, "wshAPIToolkitObject.ucATO", "")
DIM oShell : SET oShell = WScript.CreateObject("WScript.Shell")
DIM nRtn
DIM nPct
DIM sProgBarPath
CONST sProgBarExe = "rqStatusMsgProgBar.exe"
CONST sMainWinClass = "TForm"
CONST sMainWinCaption = "< rq StatusMessage / ProgressBar Helper Utility >"
CONST sTxtBoxClass = "TEdits"
CONST ID_TXTBOX = 1324
DIM m_hMainWnd, m_hTxtBox
CONST sMe = "[main], "
sProgBarPath = GetLocalDirectory() & sProgBarExe
nRtn = oShell.RUN(sProgBarPath, 1, False)
WScript.SLEEP 400
m_hMainWnd = WaitForWindow(sMainWinClass, sMainWinCaption)
m_hTxtBox = FindWindowEx(m_hMainWnd, 0, sTxtBoxClass, "")
BugAssert (m_hTxtBox <> 0), sMe & "couldn't find hidden Textbox Window"
CALL WriteStringToDialog("ping")
WScript.SLEEP 100
CALL WriteStringToDialog("Start of Demo Script")
FOR nPct = 2 TO 100 STEP 2
WScript.SLEEP 300
CALL WriteStringToDialog("Sending: " & CStr(nPct) & "% Complete")
IF (nPct MOD 10) = 0 THEN
CALL WriteStringToDialog("Milestone Message, script is: " & CStr(nPct) & "pct Complete")
END IF
NEXT
WScript.SLEEP 300
CALL WriteStringToDialog("That's all folks... ")
WScript.SLEEP 50
CALL WriteStringToDialog(" (this script will close in 2 seconds) ")
WScript.SLEEP 50
CALL WriteStringToDialog(" ")
WScript.SLEEP 2500
CALL WriteStringToDialog("Quit")
SET oShell = nothing
SET oATO = nothing
WScript.Quit
SUB WriteStringToDialog(sMsg)
CONST sMe = "[WriteStringToDlg], "
DIM iTry
CONST WM_SETTEXT = &HC
DIM sInvalidHWnd : sInvalidHWnd = sMe & "Inter-Process Message Box gone, " _
& vbCrLf & vbCrLf & "USER CANCELLED HELPER UTILITY, SCRIPT TERMINATING NOW"
FOR iTry = 1 TO 5
BugAssert (IsWindow(m_hTxtBox) <> 0), sInvalidHWnd
nRtn = GetWindowTextLength(m_hTxtBox)
IF nRtn = 0 THEN EXIT FOR
WScript.SLEEP 50
NEXT
BugAssert (nRtn = 0), sMe & "helper utility error, txtbox wouldn't clear"
BugAssert (IsWindow(m_hTxtBox) <> 0), sInvalidHWnd
nRtn = SendMessage(m_hTxtBox, WM_SETTEXT, 0, sMsg)
END SUB
FUNCTION WaitForWindow(sClass, sCaption)
CONST sMe = "[WaitForWindow], "
CONST tWaitLimit = 1000
CONST tWait = 200
DIM hWnd
DIM oWin
DIM nTry : nTry = tWaitLimit / tWait
DIM i
FOR i = 1 TO nTry
hWnd = FindWindow(sClass, sCaption)
IF hWnd <> 0 THEN
EXIT FOR
END IF
SLEEP tWait
NEXT
BugAssert (hWnd <> 0), sMe & "couldn't find window: " & sCaption
WaitForWindow = hWnd
END FUNCTION
FUNCTION SendMessage(hWnd, wMsg, wParam, lParam)
SendMessage = oATO.CallAPI("USER32.DLL", "SendMessageA", hWnd, wMsg, wParam, lParam)
END FUNCTION
FUNCTION GetWindowTextLength(hWnd)
GetWindowTextLength = oATO.CallAPI("USER32.DLL", "GetWindowTextLengthA", hWnd)
END FUNCTION
FUNCTION IsWindow(hWnd)
IsWindow = oATO.CallAPI("USER32.DLL", "IsWindow", hWnd)
END FUNCTION
FUNCTION FindWindowEx(hWndParent, hWndChildAfter, lpClassName, lpWindowName)
FindWindowEx = oATO.CallAPI("USER32.DLL", "FindWindowExA", _
hWndParent, hWndChildAfter, lpClassName, lpWindowName)
END FUNCTION
FUNCTION GetDlgItem(hDlg, nIDDlgItem)
GetDlgItem = oATO.CallAPI("USER32.DLL", "GetDlgItem", hDlg, nIDDlgItem)
END FUNCTION
FUNCTION FindWindow(lpClassName, lpWindowName)
FindWindow = oATO.CallAPI("USER32.DLL", "FindWindowA", lpClassName, lpWindowName)
END FUNCTION
FUNCTION GetLocalDirectory()
CONST sMe = "[GetLocalDirectory], "
DIM iFile
iFile = InStrRev(Wscript.ScriptFullName, "\")
BugAssert (iFile > 0), sMe & " file path problem "
GetLocalDirectory = Left(Wscript.ScriptFullName, iFile)
END FUNCTION
SUB Instantiate (oObject, sProgramID, sEventPrefix)
CONST sME = "[sub Instantiate], "
BugAssert (VARTYPE(sProgramID) = vbString), sME & "sProgramID must be a STRING!"
BugAssert (VARTYPE(sEventPrefix) = vbString), sME & "sEventPrefix must be a STRING!"
ON ERROR RESUME NEXT
SET oObject = WScript.CreateObject(sProgramID, sEventPrefix)
BugAssert (err.number = 0), sME & "This script requires: " & sProgramID & vbCrlf _
& " kindly INSTALL and REGISTER this ActX component... "
ON ERROR GOTO 0
END SUB
SUB BugAssert (bTest, sErrMsg)
DIM sDblSpace : sDblSpace = vbCrLf & vbCrLf
IF bTest THEN EXIT SUB
MsgBox "Error Message reported by BugAssert: " & sDblSpace _
& sErrMsg & sDblSpace & " this script will terminate NOW. ", _
vbCritical, " << BugAssert FAILED in Script: " & Wscript.ScriptName & " >> "
WScript.Quit
END SUB
SUB Old_Code()
END SUB
|
|