'FTESTUtl.inc - definitions for Fast Test Utility routines
'
' Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved.
'
'Purpose:
' This file defines the utility functions of the Fast Test functionality
'
'NOTES:
' See FASTTEST.INC for description of the Error catching that is coded
' throughout this module.
'**********************************************************
'***************** File Subroutines ***********************
'**********************************************************
'
' XFileExists(stFileSpec$)
'
' Description:
' Checks that stFileSpec$ exists.
' logs a failure if it can't find it (them; accept wildcards)
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' nothing
'
' Example:
' XFileExists "*.bak"
'
'
SUB XFileExists(stFileSpec$) STATIC
IF NOT EXISTS(stFileSpec$) THEN
XLogFailure stFileSpec$ + " doesn't exist"
END IF
END SUB
'
' XFileNotExists(stFileSpec$)
'
' Description:
' Checks that stFileSpec$ doesn't exist.
' logs a failure if it finds it (them; accepts wildcards)
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' nothing
'
' Example:
' XFileNotExists "*.bak"
'
'
SUB XFileNotExists(stFileSpec$) STATIC
IF EXISTS(stFileSpec$) THEN
XLogFailure stFileSpec$ + " exists"
END IF
END SUB
'
' BFileExists(stFileSpec$)
'
' Description:
' Checks if stFileSpec$ exists
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' TRUE if it exists, FALSE if not
'
'
'
FUNCTION BFileExists%(stFileSpec$) STATIC
BFileExists = EXISTS(stFileSpec$)
END FUNCTION
'
' XFileCmp(stFileSpec1$,stFileSpec2$)
'
' Description:
' Compares two files, line by line
' Logs a Failure if the files don't exist or are different
'
' Parameters:
' stFileSpec1$,stFileSpec2 - file specifications
'
' Returns:
' nothing
'
' Example:
' XFileCmp "Foo.dat","foo.bsl"
'
'
'
SUB XFileCmp(stFileSpec1$,stFileSpec2$) STATIC
DIM fh1% ' file handle of first file
DIM fh2% ' file handle of second file
DIM line1$ ' line from first file
DIM line2$ ' line from second file
DIM done ' flag to stop looping
DIM diff ' flag to indicate if files compare
gErrorType = ET_NEXT
fh1% = FREEFILE
OPEN stFileSpec1$ FOR INPUT AS #fh1%
fh2% = FREEFILE
OPEN stFileSpec2$ FOR INPUT AS #fh2%
IF gfError THEN
XLogFailure "Could not open files for XFileCmp"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
done = FALSE
diff = FALSE
IF EOF(fh1%) AND EOF(fh2%) THEN
done = TRUE
ELSEIF EOF(fh1%) OR EOF(fh2%) THEN
diff = TRUE
done = TRUE
END IF
WHILE NOT done
LINE INPUT #fh1%,line1$
LINE INPUT #fh2%,line2$
IF gfError THEN
XLogFailure "XFileCmp INPUT or EOF errors"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
IF line1$ <> line2$ THEN
done = TRUE
diff = TRUE
END IF
IF NOT done AND EOF(fh1%) AND EOF(fh2%) THEN
done = TRUE
END IF
IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN
diff = TRUE
done = TRUE
END IF
WEND
CLOSE #fh1%
CLOSE #fh2%
IF gfError THEN
XLogFailure "XFileCmp CLOSE errors"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
gErrorType = ET_NOTHING
IF diff THEN
XLogFailure "Files " + stFileSpec1$ + "," + stFileSpec2$ + " don't compare"
END IF
END SUB
'
' XFileNotCmp(stFileSpec1$,stFileSpec2$)
'
' Description:
' Compares two files, line by line
' Logs a Failure if the files don't exist or are same
'
' Parameters:
' stFileSpec1$,stFileSpec2 - file specifications
'
' Returns:
' nothing
'
' Example:
' XFileNotCmp "Foo.dat","foo.bsl"
'
'
'
SUB XFileNotCmp(stFileSpec1$,stFileSpec2$) STATIC
DIM fh1% ' file handle of first file
DIM fh2% ' file handle of second file
DIM line1$ ' line from first file
DIM line2$ ' line from second file
DIM done ' flag to stop looping
DIM diff ' flag to indicate if files compare
gErrorType = ET_NEXT
fh1% = FREEFILE
OPEN stFileSpec1$ FOR INPUT AS #fh1%
fh2% = FREEFILE
OPEN stFileSpec2$ FOR INPUT AS #fh2%
IF gfError THEN
XLogFailure "Could not open files for XFileNotCmp"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
done = FALSE
diff = FALSE
IF EOF(fh1%) AND EOF(fh2%) THEN
done = TRUE
END IF
IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN
diff = TRUE
done = TRUE
END IF
WHILE NOT done
LINE INPUT #fh1%,line1$
LINE INPUT #fh2%,line2$
IF gfError THEN
XLogFailure "XFileNotCmp INPUT or EOF errors"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
IF line1$ <> line2$ THEN
done = TRUE
diff = TRUE
END IF
IF NOT done AND EOF(fh1%) AND EOF(fh2%) THEN
done = TRUE
END IF
IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN
diff = TRUE
done = TRUE
END IF
WEND
CLOSE #fh1%
CLOSE #fh2%
IF gfError THEN
XLogFailure "XFileNotCmp CLOSE errors"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
gErrorType = ET_NOTHING
IF NOT diff THEN
XLogFailure "Files " + stFileSpec1$ + "," + stFileSpec2$ + " do compare"
END IF
END SUB
'
' BFileCmp%(stFileSpec1$,stFileSpec2$)
'
' Description:
' Compares two files, line by line
' Logs a Failure if the files don't exist
'
' Parameters:
' stFileSpec1$,stFileSpec2 - file specifications
'
' Returns:
' FALSE IF XFileCmp would detect an error
'
' Example:
' x% = BFileCmp "Foo.dat","foo.bsl"
'
'
'
FUNCTION BFileCmp%(stFileSpec1$,stFileSpec2$) STATIC
DIM fh1%
DIM fh2%
DIM line1$
DIM line2$
DIM done
DIM diff
gErrorType = ET_NEXT
fh1% = FREEFILE
OPEN stFileSpec1$ FOR INPUT AS #fh1%
fh2% = FREEFILE
OPEN stFileSpec2$ FOR INPUT AS #fh2%
IF gfError THEN
BFileCmp = FALSE
gErrorType = ET_NOTHING
gfError = FALSE
EXIT FUNCTION
END IF
done = FALSE
diff = FALSE
IF EOF(fh1%) AND EOF(fh2%) THEN
done = TRUE
END IF
IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN
diff = TRUE
done = TRUE
END IF
WHILE NOT done
LINE INPUT #fh1%,line1$
LINE INPUT #fh2%,line2$
IF gfError THEN
BFileCmp = FALSE
gErrorType = ET_NOTHING
gfError = FALSE
EXIT FUNCTION
END IF
IF line1$ <> line2$ THEN
done = TRUE
diff = TRUE
END IF
IF NOT done AND EOF(fh1%) AND EOF(fh2%) THEN
done = TRUE
END IF
IF NOT done AND (EOF(fh1%) OR EOF(fh2%)) THEN
diff = TRUE
done = TRUE
END IF
WEND
CLOSE #fh1%
CLOSE #fh2%
IF gfError THEN
BFileCmp = FALSE
gErrorType = ET_NOTHING
gfError = FALSE
EXIT FUNCTION
END IF
BFileCmp = NOT diff ' IF different a log failure would normally happen
END FUNCTION
'
' XDeleteFile(stFileSpec$)
'
' Description:
' Will delete stFileSpec$ if it, they, exists.
' logs a failure if it can't delete them or if the file(s)
' doesn't exist
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' nothing
'
' Example:
' XDeleteFile "*.bak"
'
'
SUB XDeleteFile(stFileSpec$) STATIC
IF EXISTS(stFileSpec$) THEN
gErrorType = ET_NEXT
KILL stFileSpec$
IF gfError THEN
XLogFailure "XDeleteFile " + stFileSpec$ + " could NOT be deleted"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
ELSE
XLogFailure "XDeleteFile " + stFileSpec$ + " NOT deleted (doesn't exist)."
END IF
END SUB
'
' XDeleteFileIfExists(stFileSpec$)
'
' Description:
' Will delete stFileSpec$ if it, they, exists.
' logs a failure if it can't delete them but doesn't if the file(s)
' doesn't exist
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' nothing
'
' Example:
' XDeleteFileIfExists "*.bak"
'
'
SUB XDeleteFileIfExists(stFileSpec$) STATIC
IF EXISTS(stFileSpec$) THEN
gErrorType = ET_NEXT
KILL stFileSpec$
IF gfError THEN
XLogFailure "XDeleteFileIfExists " + stFileSpec$ + " could NOT be deleted"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
END IF
END SUB
'
' XCreateFile(stFileSpec$,s$)
'
' Description:
' Will Create stFileSpec$ and put string in it
' logs a failure if it can't Create it
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' nothing
'
' Example:
' XCreateFile "foo.dat","Hello world"
'
'
'
SUB XCreateFile(stFileSpec$,s$) STATIC
DIM fh%
gErrorType = ET_NEXT
fh% = FREEFILE
OPEN stFileSpec$ FOR OUTPUT AS #fh%
PRINT #fh%,s$ ' put the string in the file
CLOSE #fh%
IF gfError THEN
XLogFailure "XCreateFile encountered runtime errors"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
END SUB
'
' XAppendFile(stFileSpec$,s$)
'
' Description:
' Will Append stFileSpec$ and put string in it
' logs a failure if it can't Append it
'
' Parameters:
' stFileSpec$ - file specification
'
' Returns:
' nothing
'
' Example:
' XAppendFile "foo.dat","Hello world"
'
'
'
SUB XAppendFile(stFileSpec$,s$) STATIC
DIM fh%
gErrorType = ET_NEXT
fh% = FREEFILE
OPEN stFileSpec$ FOR APPEND AS #fh%
PRINT #fh%,s$ ' put the string in the file
CLOSE #fh%
IF gfError THEN
XLogFailure "XAppendFile encountered runtime errors"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
END SUB
'
' XWaitMessageFile(s$,Message$,WaitTime%)
'
' Description:
' Wait for file to exist, only wait up to given time,
' check if string is in file (if string is non-empty)
' logs a failure if the files doesn't exist, or when
' it does and the string isn't in it.
'
' Parameters:
' s$ - file specification
' Message$ - the string to look for
' WaitTime% - the longest to wait
'
' Returns:
' nothing
'
' Example:
' XWaitMessageFile "foo.dat","Hello world",20
'
'
'
SUB XWaitMessageFile(s$,Message$, WaitTime%) STATIC
DIM fDone% ' flag to stop looping
DIM fFound% ' flag to indicate if file found
DIM lineIn$ ' line from file
DIM inret% ' return from INSTR
DIM fh% ' File handle
fDone = FALSE
fFound = FALSE
WHILE NOT fDone
IF EXISTS(s$) THEN
fDone = TRUE
fFound = TRUE
ELSE
SLEEP 1
WaitTime% = WaitTime% - 1
IF WaitTime% <= 0 THEN
fDone = TRUE
END IF
END IF
WEND
IF NOT fFound% THEN
XLogFailure "FAIL """ + s$ + """ Message File not found"
ELSE
IF Message$ = "" THEN
' don't bother searching if no string given
EXIT SUB
END IF
fDone = FALSE
fFOUND = FALSE
gErrorType = ET_NEXT
fh% = FREEFILE
OPEN s$ FOR INPUT AS # fh%
IF EOF(fh%) THEN
fDone% = TRUE
END IF
IF gfError THEN
XLogFailure "XWaitMessageFile encountered runtime error during OPEN"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
WHILE NOT fDone%
LINE INPUT # fh%, lineIn$
IF gfError THEN
XLogFailure "XWaitMessageFile encountered runtime error during INPUT"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
inret% = INSTR(lineIn$,Message$)
IF inret% <> 0 THEN
fFound% = TRUE
fDone = TRUE
END IF
IF EOF(fh%) THEN
fDone% = TRUE
END IF
WEND
CLOSE # fh%
IF gfError THEN
XLogFailure "XWaitMessageFile encountered runtime error during CLOSE"
gErrorType = ET_NOTHING
gfError = FALSE
EXIT SUB
END IF
gErrorType = ET_NOTHING
IF NOT fFound% THEN
XLogFailure "FAIL, found """ + s$ + """ Message File, """ + Message$ + """ not in it"
END IF
END IF
END SUB
'**********************************************************
'***************** Directory Subroutines ******************
'**********************************************************
'
' XCWDCmp(s$)
'
' Description:
' Compare the current working directory and log error if it
' doesn't match the expected value
'
' Parameters:
' s$ - the expected value for the current directory
'
' Returns:
' nothing
'
' Example:
' XCWDCmp "c:\tests"
'
SUB XCWDCmp(s$) STATIC
IF BCWDCmp(s$) = 0 THEN
XLogFailure "Current working directory (" + UCASE$(CURDIR$) + ") doesn't match " + UCASE$(s$)
END IF
END SUB
'
' XCWDNotCmp(s$)
'
' Description:
' Compare the current working directory and log error if it
' does match the given value
'
' Parameters:
' s$ - the value for the directory that isn't expected
'
' Returns:
' nothing
'
' Example:
' XCWDNotCmp "c:\tests"
'
SUB XCWDNotCmp(s$) STATIC
IF UCASE$(CURDIR$) = UCASE$(s$) THEN
XLogFailure "Current working directory (" + UCASE$(CURDIR$) + ") matches " + UCASE$(s$)
END IF
END SUB
'
' BCWDCmp(s$)
'
' Description:
' return compare of the current working directory and the expected value
'
' Parameters:
' s$ - the expected value for the current directory
'
' Returns:
' TRUE if matches, FALSE if doesn't
'
' Example:
' flag% = BCWDCmp("c:\tests")
'
FUNCTION BCWDCmp%(s$) STATIC
BCWDCmp = UCASE$(CURDIR$) = UCASE$(s$)
END FUNCTION
'
' XDriveCmp(s$)
'
' Description:
' Compare the current working drive and log error if it
' doesn't match the expected value
'
' Parameters:
' s$ - the expected value for the current drive
'
' Returns:
' nothing
'
' Example:
' XDriveCmp "c:"
'
SUB XDriveCmp(s$) STATIC
IF BDriveCmp%(s$) = 0 THEN
XLogFailure "Current working Drive (" + MID$(UCASE$(CURDIR$),1,2) + ") doesn't match " + UCASE$(s$)
END IF
END SUB
'
' XDriveNotCmp(s$)
'
' Description:
' Compare the current working drive and log error if it
' does match the given value
'
' Parameters:
' s$ - the expected value for the current drive
'
' Returns:
' nothing
'
' Example:
' XDriveNotCmp "c:"
'
SUB XDriveNotCmp(s$) STATIC
IF MID$(UCASE$(CURDIR$),1,2) = UCASE$(s$) THEN
XLogFailure "Current working Drive (" + MID$(UCASE$(CURDIR$),1,2) + ") matches " + s$
END IF
END SUB
'
' BDriveCmp(s$)
'
' Description:
' return compare the current working drive and the expected value
'
' Parameters:
' s$ - the expected value for the current drive
'
' Returns:
' TRUE if matches, FALSE if doesn't
'
' Example:
' flag% = BDriveCmp("c:")
'
FUNCTION BDriveCmp%(s$) STATIC
BDriveCmp = MID$(UCASE$(CURDIR$),1,2) = UCASE$(s$)
END FUNCTION
'
' XChangeCWD(s$)
'
' Description:
' Change to given working directory, log failure if doesn't succeed
'
' Parameters:
' s$ - directory to change to
'
' Returns:
' nothing
'
' Example:
' XChangeCWD "\tmp"
'
'
SUB XChangeCWD(s$) STATIC
gErrorType = ET_NEXT
CHDIR s$
IF gfError THEN
XLogFailure "XChangeCWD could not change directory"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
END SUB
'
' XCreateDir(s$)
'
' Description:
' Create the given directory, log failure if doesn't succeed
'
' Parameters:
' s$ - directory to create
'
' Returns:
' nothing
'
' Example:
' XCreateDir "\tmpdir"
'
'
SUB XCreateDir(s$) STATIC
gErrorType = ET_NEXT
MKDIR s$
IF gfError THEN
XLogFailure "XCreateDir could not create directory"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
END SUB
'
' XChangeDrive(s$)
'
' Description:
' Change the current working drive, log failure if doesn't succeed
'
' Parameters:
' s$ - drive to change to
'
' Returns:
' nothing
'
' Example:
' XChangeDrive "c:"
'
'
SUB XChangeDrive(s$) STATIC
gErrorType = ET_NEXT
CHDRIVE s$
IF gfError THEN
XLogFailure "XChangeDrive could not change drive"
gfError = FALSE
END IF
gErrorType = ET_NOTHING
END SUB
'**********************************************************
'***************** Program Subroutines ********************
'**********************************************************
'
' HStartApp%(stAppName$)
'
' Description:
' Starts app AppName and returns the handle to the App
'
' Parameters:
' stAppName$ - name of app to WinExec and get handle to
'
' Returns:
' handle to application started
'
' Example:
' hWinHelp% = HStartApp("winhelp.exe")
'
'
FUNCTION HStartApp%(stAppName$) STATIC
DIM Bogus%, hwndActive%, hwndNewApp%
DIM lpszTemp$
' Get the current foreground window
hwndActive = GetForegroundWindow ()
Bogus% = WinExec (stAppName$, SW_SHOWNORMAL)
lpszTemp$ = "WinExec error with " + stAppName$ + " :"
' WinExec defines SOME of the values between 0 and 32
' as errors... any return value greater than 32
' should be considered a success!
SELECT CASE Bogus%
CASE 0
XLogFailure lpszTemp$ + "Out of memory - exiting"
CASE 2
XLogFailure lpszTemp$ + "File not found"
End
CASE 3
XLogFailure lpszTemp$ + "Path not found"
CASE 5
XLogFailure lpszTemp$ + "Attempt to dynamically link to a task"
CASE 6
XLogFailure lpszTemp$ + "Library requires separate data segments"
CASE 10
XLogFailure lpszTemp$ + "Incorrect Windows version"
CASE 11
XLogFailure lpszTemp$ + "Invalid EXE file"
CASE 12
XLogFailure lpszTemp$ + "OS/2 application"
CASE 13
XLogFailure lpszTemp$ + "DOS 4.0 application"
CASE 14
XLogFailure lpszTemp$ + "Unknown EXE type"
CASE 15
XLogFailure lpszTemp$ + "Must run in real mode Windows"
CASE 16
XLogFailure lpszTemp$ + "Cannot run more than one instance"
CASE 17
XLogFailure lpszTemp$ + "Large-frame EMS allows only one instance"
CASE 18
XLogFailure lpszTemp$ + "Must run in standard or enhanced mode Windows"
CASE 0 TO 32
XLogFailure lpszTemp$ + "Unknown Error in WinExec"
END SELECT
' Wait until the old foreground window is no longer the foreground wnd
while hwndActive = GetForegroundWindow
sleep 1
wend
HStartApp = GetForegroundWindow ()
END FUNCTION
'
' XStartApp(stAppName$)
'
' Description:
' Starts app AppName and sets handle to ghAppHwnd.
' if we get a null handle, THEN we end the script here.
'
' Parameters:
' stAppName$ - name of app to WinExec
'
' Returns:
' nothing
'
' Example:
' XStartApp "winhelp.exe"
'
'
SUB XStartApp(stAppName$, stClassname$) STATIC
DIM logstr$
'ghAppHwnd is a global
ghAppHwnd = HStartApp(stAppName$)
IF (ghAppHwnd = 0) THEN
'we didn't get a handle
XLogFailure "Unable to start app " + stAppName$
ELSEIF stClassname$ <> "" THEN
gsAppClassname = stClassname$ ' remember it for later
IF FindWindow(stClassname$,NULL) = 0 THEN
' The app isn't around
logstr$ = "The app " + stAppName$ + " started but didn't stay OR..."
logstr$ = logstr$ + CRLF$ + "the given class name ("
logstr$ = logstr$ + stClassname$ + ") is incorrect"
XLogFailure logstr$
END IF
END IF
END SUB
'
' XSetCleanup(sCleanup$)
'
' Description:
' Stores a user defined DoKeys string to be used to exit the
' application automatically. If set to an empty string,
' nothing will be sent with DoKeys but there will still be
' a log failure if the application is still running when the
' script ends (no check is done if there wasn't a classname
' supplied with XStartApp
'
' Parameters:
' sCleanup$ - the string to use with DoKeys to end the app
'
' Returns:
' nothing
'
' Example:
' XSetCleanup "{esc 5}%vx"
'
'
SUB XSetCleanup (sCleanup$) STATIC
gsCleanup$ = sCleanup$
END SUB
' This routine is not intended to be called in the user script.
' This routine is executed when the script finishes with an END
' statement. Its purpose is to find the application started with
' XStartapp using the classname supplied there. if it exists,
' and the gsCleanup string is nonempty, the gsCleanup string will
' be played. This may still not get rid of the app for various
' reasons: maybe it is prompting to save a file, or it won't exit
' a dialog...
SUB XDoCleanup STATIC
DIM logstr$
IF gsCleanup$ <> "" AND gsAppClassname$ <> "" AND FindWindow(gsAppClassname$,NULL) <> 0 THEN
DoKeys gsCleanup$
END IF
IF gsAppClassname$ <> "" AND FindWindow(gsAppClassname$,NULL) <> 0 THEN
logstr$ = "The app with class name " + gsAppClassname$ + " was not"
logstr$ = logstr$ + CRLF$ + "halted by the cleanup string " + gsCleanup$
XLogFailure logstr$
END IF
END SUB
'**********************************************************
'***************** Mouse Subroutines **********************
'**********************************************************
' The mouse routines use the VK_LBUTTON, VK_RBUTTON, VK_MBUTTON
' constants to determine which button to use (or LBUTTON, MBUTTON or RBUTTON
' as defined in fasttest.inc
'
' XMoveMouse(x%,y%)
'
' Description:
' Moves the mouse pointer to specified absolute screen coordinates
'
' Parameters:
' x%,y% - x and y coordinates to move to
'
' Returns:
' nothing
'
' Example:
' XMoveMouse 100,120
'
'
SUB XMoveMouse (x%, y%) STATIC
QueMouseMove x%,y%
QueFlush FALSE
END SUB
'
' XClickMouse(button%,x%,y%)
'
' Description:
' Clicks the mouse pointer to specified absolute screen coordinates
'
' Parameters:
' button% - which button to click
' x%,y% - x and y coordinates to move to
'
' Returns:
' nothing
'
' Example:
' XClickMouse LBUTTON,100,120
'
'
SUB XClickMouse(button%, x%, y%) STATIC
QueMouseDn button%,x%,y%
QueMouseUp button%,x%,y%
QueFlush FALSE
END SUB
'
' XDblClickMouse(button%,x%,y%)
'
' Description:
' Clicks the mouse pointer to specified absolute screen coordinates
'
' Parameters:
' button% - which button to double click
' x%,y% - x and y coordinates to move to
'
' Returns:
' nothing
'
' Example:
' XDblClickMouse LBUTTON,100,120
'
'
SUB XDblClickMouse(button%, x%, y%) STATIC
QueMouseDblClk button%,x%,y%
QueFlush FALSE
END SUB
'
' XDragMouse (button%, Begx%, Begy%, Endx%, Endy%)
'
' Description:
' Drags the mouse pointer to specified absolute screen coordinates
'
' Parameters:
' button% - which button to use for dragging
' Begx%,Begy% - x and y coordinates to Drag from
' Endx%,Endy% - x and y coordinates to Drag to
'
' Returns:
' nothing
'
' Example:
' XDragMouse LBUTTON,100,120, 200,220
'
'
SUB XDragMouse (button%, Begx%, Begy%, Endx%, Endy%) STATIC
QueMouseDn button%,Begx%,Begy%
QueMouseMove Endx%,Endy%
QueMouseUp button%,Endx%,Endy%
QueFlush FALSE
END SUB
'**********************************************************
'***************** ClipBoard Subroutines ******************
'**********************************************************
'
' XClipBoardCmp(s$)
'
' Description:
' Compare given string to what is in the clipboard, log failure
' if they don't match
'
' Parameters:
' s$ - string to compare
'
' Returns:
' nothing
'
' Example:
' XClipBoardCmp "07734"
'
'
SUB XClipBoardCmp (s$) STATIC
IF s$ <> CLIPBOARD$ THEN
XLogFailure "String does not match clipboard"
END IF
END SUB
'
' XClipBoardNotCmp(s$)
'
' Description:
' Compare given string to what is in the clipboard, log failure
' if they match
'
' Parameters:
' s$ - string to compare
'
' Returns:
' nothing
'
' Example:
' XClipBoardNotCmp "07734"
'
'
SUB XClipBoardNotCmp (s$) STATIC
IF s$ = CLIPBOARD$ THEN
XLogFailure "String does match clipboard"
END IF
END SUB
'
' BClipBoardCmp(s$)
'
' Description:
' Compare given string to what is in the clipboard, log failure
' if they don't match
'
' Parameters:
' s$ - string to compare
'
' Returns:
' TRUE if matches, FALSE if doesn't
'
' Example:
' flag% = BClipBoardCmp "07734"
'
'
FUNCTION BClipBoardCmp (s$) STATIC
BClipBoardCmp = s$ = CLIPBOARD$
END FUNCTION