|
|
'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
|