|
|
'FTestKey.inc - definitions for Fast Test Key, Menu and Window routines ' ' Copyright (c) 1991-1992, Microsoft Corporation. All rights reserved. ' 'Purpose: ' This file defines the Key, Menu and Window functions of the Fast Test ' functionality '
'********************************************************** '***************** Keystroke Subroutines ****************** '**********************************************************
' support routine for other subroutines, not meant to be called ' except by fasttest routines ' FUNCTION SKeyString$(s$) STATIC DIM sTemp$
IF LEN(s$) = 0 THEN XLogFailure "zero length string passed to SKeyString$" END IF
IF LEN(s$) = 1 THEN SELECT CASE ASC(s$)
' alphanumerics, pass along as given CASE ASC("a") to ASC("z"), ASC("A") to ASC("Z"), ASC("0") to ASC("9") sTemp$ = s$
' special characters to Dokeys, surround with braces CASE ASC("~"),ASC("+"),ASC("^"),ASC("%") sTemp$ = "{" + s$ + "}"
CASE ASC("{"),ASC("}"),ASC("("),ASC(")"),ASC("["),ASC("]") sTemp$ = "{" + s$ + "}"
' normal printable non-alphanumerics, pass along CASE ASC("!"),ASC("@"),ASC("#"),ASC("$"),ASC("&") sTemp$ = s$
CASE ASC("*"),ASC("_"),ASC("|"),ASC(""""),ASC("<"),ASC(">") sTemp$ = s$
CASE ASC("-"),ASC("="),ASC("\"),ASC(";"),ASC("'"),ASC(":") sTemp$ =s$
CASE ASC(","),ASC("."),ASC("/"),ASC(" "),ASC("?"),ASC("`") sTemp$ =s$
' non-printable other character CASE ELSE XLogFailure "Bad character passed to SKeyString$"
END SELECT
ELSE ' the string is greater than 1 character in length, put braces ' around it and send it to Dokeys and let it parse it sTemp$ = "{" + s$ + "}" END IF SKeyString$ = "(" + sTemp$ + ")" END FUNCTION
' support routine for other subroutines, not meant to be called ' except by fasttest routines ' FUNCTION SHideKeys$(s$) STATIC DIM check$ DIM i% DIM stRet$ ' this code must hide each character that is special to DoKeys
stRet$ = "" ' start empty FOR i% = 1 to LEN(s$) ' special characters to DoKeys, surround with braces check$ = mid$(s$,i%,1) IF check$ = "~" OR check$ = "+" OR check$ = "^" OR check$ = "%" THEN stRet$ = stRet$ + "{" + check$ + "}" ELSEIF check$ = "{" OR check$ = "}" OR check$ = "(" OR check$ = ")" OR check$ = "[" OR check$ = "]" THEN stRet$ = stRet$ + "{" + check$ + "}" ELSE stRet$ = stRet$ + check$ END IF NEXT i% SHideKeys$ = stRet$ END FUNCTION
' ' XKey(s$) ' ' Description: ' Send Keystroke to active application ' This uses DoKeys, so DoKeys syntax is allowed ' ' Parameters: ' s$ - single char to send ' NOTE: any string longer that 1 character in length is assumed ' to be a special name for a key and is handled as such ' ' Returns: ' nothing ' ' Example: ' XKey "f" ' XKey "escape"
SUB XKey (s$) STATIC DoKeys SKeyString$(s$)
END SUB
' ' XAlt(s$) ' ' Description: ' Send a key as if the alt key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XAlt "f" ' XAlt "escape" ' '
SUB XAlt (s$) STATIC DoKeys "%" + SKeyString$(s$)
END SUB
' ' XCtrl(s$) ' ' Description: ' Send a key as if the control key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XCtrl "f" ' XCtrl "escape" ' '
SUB XCtrl (s$) STATIC DoKeys "^" + SKeyString$(s$) END SUB
' ' XShift(s$) ' ' Description: ' Send a key as if the alt key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XShift "f" ' XShift "escape" ' '
SUB XShift (s$) STATIC DoKeys "+" + SKeyString$(s$)
END SUB
' ' XCtrlAlt(s$) ' ' Description: ' Send a key as if the alt key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XCtrlAlt "f" ' XCtrlAlt "escape" ' '
SUB XCtrlAlt (s$) STATIC DoKeys "^%" + SKeyString$(s$) END SUB
' ' XAltShift(s$) ' ' Description: ' Send a key as if the alt key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XAltShift "f" ' XAltShift "escape" ' '
SUB XAltShift (s$) STATIC DoKeys "%+" + SKeyString$(s$) END SUB
' ' XCtrlShift(s$) ' ' Description: ' Send a key as if the alt key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XCtrlShift "f" ' XCtrlShift "escape" ' '
SUB XCtrlShift (s$) STATIC DoKeys "^+" + SKeyString$(s$) END SUB
' ' XCtrlAltShift(s$) ' ' Description: ' Send a key as if the alt key is pressed at the same time ' ' Parameters: ' s$ - single char to send ' see XKey note ' ' Returns: ' nothing ' ' Example: ' XCtrlAltShift "f" ' XCtrlAltShift "escape" ' '
SUB XCtrlAltShift (s$) STATIC DoKeys "^%+" + SKeyString$(s$)
END SUB
' ' XText(s$) ' ' Description: ' Send any key as without having to specially specify any ' keys that are special to DoKeys ' ' Parameters: ' s$ - string of characters to send ' ' Returns: ' nothing ' ' Example: ' XText "Hello World" ' XText "The DoKeys string to send is {escape}" ' '
SUB XText(s$) STATIC DoKeys SHideKeys$(s$) END SUB
' ' XEnter(s$) ' ' Description: ' Send any key as without having to specially specify any ' keys that are special to DoKeys followed by an enter key ' ' Parameters: ' s$ - string of characters to send ' ' Returns: ' nothing ' ' Example: ' XEnter "Hello World" ' XEnter "The DoKeys string to send is {escape}" ' '
SUB XEnter(s$) STATIC DoKeys SHideKeys$(s$) + "{enter}" END SUB
'********************************************************** '***************** Menu Subroutines *********************** '**********************************************************
' ' XSelectMenuItem(stMenu, stMenuItem, stHMenuItem) ' ' Description: ' This procedure selects the specified menu item name. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF ' Hierarchial menu exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XSelectMenuItem "Edit", "Copy","" ' ' SUB XSelectMenuItem(stMenu$,stMenuItem$,stHMenuItem$) STATIC XMenuItemExists stMenu$,stMenuItem$,stHMenuItem$
WMenu(stMenu$) IF stMenuItem$ <> "" THEN WMenu(stMenuItem$) END IF IF stHMenuItem$ <> "" THEN 'If popup menu is to be selected WMenu(stHMenuItem$) 'Select menu item under popup menu. END IF
END SUB
' ' BMenuItemExists(stMenu, stMenuItem, stHMenuItem) ' ' Description: ' This procedure checks for the specified menu item ' and returns true IF found, false IF not found. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to check or secondary menu, IF ' Hierarchial menu exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' TRUE if it exists, FALSE if not ' ' Example: ' fSuccess% = BMenuItemExists("File", "", "") ' fSuccess% = BMenuItemExists("FIle","Edit", "") ' ' FUNCTION BMenuItemExists%(stMenu$,stMenuItem$,stHMenuItem$) STATIC
IF stHMenuItem$ = "" THEN IF stMenuItem$ = "" THEN BMenuItemExists = WMenuExists(stMenu$) <> 0 ELSE WMenu(stMenu$) BMenuItemExists = WMenuExists(stMenuItem$) <> 0 END IF ELSE WMenu(stMenu$) WMenu(stMenuItem$) BMenuItemExists = WMenuExists(stHMenuItem$) <> 0 END IF DoKeys "{esc 3}" 'Make sure you close menu.
END FUNCTION
' ' XMenuItemExists (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item does not exist. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF ' Hierarchial menu exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemExists "File", "Close", "" ' ' ' SUB XMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " does not Exist" END IF END SUB
' ' XMenuItemNotExists (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item exist. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemNotExists "File", "Close", "" ' ' '
SUB XMenuItemNotExists(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemExists(stMenu$,stMenuItem$, stHMenuItem$) THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " Exists" END IF END SUB
' ' IGetMenuCount(stMenu, stMenuItem) ' ' Description: ' This procedure returns the number of menu items ' in the specified menu. ' ' Parameters: ' stMenu = top level menu to count menu items in. ' IF stMenu = "", THEN counts items in the menu bar(counts the ' number of top level menus). ' stMenuItem = secondary menu to count menu items in; counts hierarchial ' menu items. ' ' Returns: ' An integer; the number of menu items found. ' ' Example: ' iHowMany% = IGetMenuCount("","") returns how many top level menus. ' iHowMany% = IGetMenuCount("Utilities", "") returns the number of menu items ' in the "Utilities" menu. ' iHowMany% = IGetMenuCount("Utilities", "Info") returns how many menu items ' in the popup menu "Info". ' ' FUNCTION IGetMenuCount%(stMenu$, stMenuItem$) STATIC
IF stMenuItem$ <> "" THEN 'Count in menu items in hierarchial menu. WMenu(stMenu$) WMenu(stMenuItem$) IGetMenuCount = WMenuCount() 'Count the number of menus items in the popup 'menu. ELSE IF stMenu$ <> "" THEN 'Count menus in stMenu$. WMenu(stMenu$) IGetMenuCount = WMenuCount() 'Count the number of menus items in the menu. ELSE IGetMenuCount = WMenuCount() 'Count the number of menus in the menu bar if. 'the above "IF" statements are skipped. END IF END IF DoKeys "{esc 3}" 'Make sure you close menu.
END FUNCTION
' ' SGetMenuItemText(stMenu, stMenuItem, iIndex) ' ' Description: ' This procedure returns the text of menu item, iIndex ' (base 1) in stMenu. Length of the buffer to store ' the menu item text is passed in. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to check or secondary menu, IF Hierarchial menu ' exists. ' iIndex = index of menu item in stMenu. ' iLength = length of buffer to store text ' ' Returns: ' a string, the menu item text(name). ' ' Example: ' Print SGetMenuItemText("","","", 3) gets name of 3rd menu. ' Print SGetMenuItemText("Utilities","","",3) gets name of 3rd menu item ' in the "Utilities" menu. ' Print SGetMenuItemText("Utilities","Info",3) gets name of 3rd menu item ' in the popup menu "Info". ' ' FUNCTION SGetMenuItemText$(stMenu$,stMenuItem$, iIndex%) STATIC DIM buffer$
buffer$ = String$(128,32) 'initialize with spaces. IF stMenuItem$ <> "" THEN 'get menu text from hierarchial menu. WMenu(stMenu$) WMenu(stMenuItem$) ELSE IF stMenu$ <> "" THEN 'get menu text from stMenu$. WMenu(stMenu$) END IF END IF
'$IFNDEF NT WMenuText iIndex%, buffer$ 'get menu text. If above "IF" condition 'is skipped, this gets text in menu bar. '$ELSE WMenuText "@"+STR$(iIndex%), buffer$ '$ENDIF
SGetMenuItemText = buffer$ 'return buffer$
DoKeys "{esc 3}" 'Make sure you close menu.
END FUNCTION
' ' BMenuItemGrayed(stMenu$, stMenuItem$,stHMenuItem$) ' ' Description: ' This procedure checks to see IF the specified menu or ' menu item is grayed out or not. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' TRUE if grayed. ' FALSE if not grayed. ' ' Example: ' fIsGrayed% = BMenuItemGrayed("Edit", "Copy", "") ' fIsGrayed% = BMenuItemGrayed("Edit", "", "") ' ' FUNCTION BMenuItemGrayed%(stMenu$, stMenuItem$, stHMenuItem$) STATIC
IF stHMenuItem$ = "" THEN IF stMenuItem$ = "" THEN BMenuItemGrayed = WMenuGrayed(stMenu$) <> 0 'Check main menu bar menu items. ELSE WMenu(stMenu$) 'Check menu item within stMenuItem$. BMenuItemGrayed = WMenuGrayed(stMenuItem$) <> 0 END IF ELSE WMenu(stMenu$) 'Check popup menu items. WMenu(stMenuItem$) BMenuItemGrayed = WMenuGrayed(stHMenuItem$) <> 0 END IF DoKeys "{esc 3}" 'Make sure you close menu.
END FUNCTION
' ' XMenuItemGrayed (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item is not Grayed. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemGrayed "File", "Close", "" ' ' '
SUB XMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is not Grayed" END IF END SUB
' ' XMenuItemNotGrayed (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item is Grayed. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemNotGrayed "File", "Close", "" ' ' '
SUB XMenuItemNotGrayed(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemGrayed(stMenu$,stMenuItem$, stHMenuItem$) THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is Grayed" END IF END SUB
' ' BMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' This procedure checks to see IF the specified menu ' item is checked or not. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' TRUE if checked. ' FALSE if not checked. ' ' Example: ' fIsChecked% = BMenuItemChecked("Format","Style","Bold") ' fIsChecked% = BMenuItemchecked("Edit", "Copy", "") ' ' FUNCTION BMenuItemChecked%(stMenu$, stMenuItem$, stHMenuItem$) STATIC
IF stHMenuItem$ = "" THEN WMenu(stMenu$) 'Check menu item within stMenu$. BMenuItemChecked = WMenuChecked(stMenuItem$) <> 0 ELSE WMenu(stMenu$) 'Check menu item under popup menu. WMenu(stMenuItem$) BMenuItemChecked = WMenuChecked(stHMenuItem$) <> 0 END IF DoKeys "{esc 3}" 'Make sure you close menu.
END FUNCTION
' ' XMenuItemChecked (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item is not Checked. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemChecked "Options", "Read Only", "" ' ' ' SUB XMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is not Checked" END IF END SUB
' ' XMenuItemNotChecked (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item is Checked. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemNotChecked "Options", "Read Only", "" ' ' ' SUB XMenuItemNotChecked(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemChecked(stMenu$,stMenuItem$, stHMenuItem$) THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is Checked" END IF END SUB
' ' BMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' This procedure checks to see IF the specified menu or ' menu item is enabled or not. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' TRUE if enabled. ' FALSE if not enabled. ' ' Example: ' fIsEnabled% = BMenuItemEnabled("File", "", "") ' fIsEnabled% = BMenuItemEnabled("File", "Close", "") ' ' FUNCTION BMenuItemEnabled%(stMenu$,stMenuItem$, stHMenuItem$) STATIC
IF stHMenuItem$ = "" THEN IF stMenuItem$ = "" THEN BMenuItemEnabled = WMenuEnabled(stMenu$) <> 0 'Check main menu bar menu items. ELSE WMenu(stMenu$) 'Check menu item within stMenu$. BMenuItemEnabled = WMenuEnabled(stMenuItem$) <> 0 END IF ELSE WMenu(stMenu$) 'Check menu item under popup menu. WMenu(stMenuItem$) BMenuItemEnabled = WMenuEnabled(stHMenuItem$) <> 0 END IF DoKeys "{esc 3}" 'Make sure you close menu.
END FUNCTION
' ' XMenuItemEnabled (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item is not Enabled. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemEnabled "Options", "Read Only", "" ' ' ' SUB XMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) = 0 THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is not Enabled" END IF END SUB
' ' XMenuItemNotEnabled (stMenu$,stMenuItem$, stHMenuItem$) ' ' Description: ' Reports error IF menu item is Enabled. ' ' Parameters: ' stMenu = menu where stMenuItem is found. ' stMenuItem = menu item to select or secondary menu, IF Hierarchial menu ' exists. ' stHMenuItem = hierarchial(popup) menu item. ' ' Returns: ' nothing ' ' Example: ' XMenuItemNotEnabled "Options", "Read Only", "" ' ' ' SUB XMenuItemNotEnabled(stMenu$,stMenuItem$, stHMenuItem$) STATIC IF BMenuItemEnabled(stMenu$,stMenuItem$, stHMenuItem$) THEN XLogFailure stMenu$ + " " + stMenuItem$ + " " + stHMenuItem$ + " is Enabled" END IF END SUB
'********************************************************** '***************** Window Subroutines ********************* '**********************************************************
' ' XCaptionExists(stCaption$) ' ' Description: ' Will report error IF caption does not Exist. ' ' Parameters: ' stCaption$ - expected caption of current window ' ' Returns: ' nothing ' ' Example: ' XCaptionExists "Winword" ' ' ' SUB XCaptionExists(stCaption$) STATIC IF Instr(SGetCaption(), stCaption$) = 0 THEN XLogFailure stCaption$ + " caption does not exist in active window." END IF END SUB
' ' XCaptionNotExists(stCaption$) ' ' Description: ' Will report error IF caption Exist. ' ' Parameters: ' stCaption$ - NOT expected caption of current window ' ' Returns: ' nothing ' ' Example: ' XCaptionNotExists "Winword" ' ' SUB XCaptionNotExists(stCaption$) STATIC IF Instr(SGetCaption(), stCaption$) <> 0 THEN XLogFailure stCaption$ + " caption Exists in active window." END IF END SUB
' ' SGetCaption() ' ' Description: ' Returns the caption of the Active window ' ' Parameters: ' none ' ' Return: ' Caption of the Active window ' ' Example: ' stCaption$ = SGetCaption() ' ' FUNCTION SGetCaption$() STATIC DIM x% DIM stCaption$
stCaption$ = String$(100, 32) x% = GetWindowText (GetForegroundWindow(), stCaption$, LEN(stCaption$)) SGetCaption = mid$(stCaption$,1,x%) stCaption$ = "" END FUNCTION
' ' XZoomWindow ' ' Description: ' Toggles the state of the window between normalized ' and maximized. ' ' Parameters: ' None ' ' Returns: ' nothing ' ' Example: ' XZoomWindow ' ' ' SUB XZoomWindow STATIC DIM bogus% DIM lhwndTemp%
lhwndTemp% = GetForegroundWindow()
' IF the window is maximized, normalize.
IF (IsZoomed(lhwndTemp%)) THEN ' window is maximized, we must normalize it bogus% = ShowWindow(lhwndTemp%, SW_SHOWNORMAL) ELSE bogus% = ShowWindow(lhwndTemp%, SW_MAXIMIZE) END IF
END SUB
' ' XMaxWindow ' ' Description: ' Maximize the current active window ' ' Parameters: ' None ' ' Returns: ' nothing ' ' Example: ' XMaxWinow ' ' '
SUB XMaxWindow STATIC DIM bogus% DIM lhwndTemp% DIM lWndStyle&
lhwndTemp% = GetForegroundWindow ()
' Get the window's style attributes lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
IF ((lWndStyle& And WS_MAXIMIZE) <> 0) THEN XLogFailure "Could not maximize active window, already maximized" ELSE bogus% = ShowWindow(lhwndTemp%, SW_SHOWMAXIMIZED) END IF
END SUB
' ' XWindowMaximized ' ' Description: ' check IF the current active window is Maximized ' ' Parameters: ' none ' ' Returns: ' nothing ' ' Example: ' XWindowMaximized ' ' '
SUB XWindowMaximized STATIC IF BWindowMaximized = 0 THEN XLogFailure "Active Window not maximized" END IF
END SUB
' ' XWindowNotMaximized ' ' Description: ' Check that the current window is not maximized ' ' Parameters: ' none ' ' Returns: ' nothing ' ' Example: ' XWindowNotMaximized ' ' '
SUB XWindowNotMaximized STATIC
IF BWindowMaximized THEN XLogFailure "Active Window is maximized" END IF
END SUB
' ' BWindowMaximized ' ' Description: ' detect IF current window is maximized ' ' Parameters: ' none ' ' Returns: ' TRUE if maximized, FALSE if not ' ' Example: ' BWindowMaximized ' ' '
FUNCTION BWindowMaximized% STATIC DIM bogus% DIM lhwndTemp% DIM lWndStyle&
lhwndTemp% = GetForegroundWindow ()
' Get the window's style attributes lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
BWindowMaximized = (lWndStyle& AND WS_MAXIMIZE) <> 0
END FUNCTION
' ' XMinWindow ' ' Description: ' Minimize the current active window ' ' Parameters: ' none ' ' Returns: ' nothing ' ' Example: ' XMinWindow ' ' '
SUB XMinWindow STATIC DIM bogus% DIM lhwndTemp% DIM lWndStyle&
lhwndTemp% = GetForegroundWindow ()
' Get the window's style attributes lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
' IF maximized, XLog the descrepancy IF ((lWndStyle& And WS_MINIMIZE) <> 0) THEN XLogFailure "Could not minimize active window, already minimized" ELSE bogus% = ShowWindow(lhwndTemp%, SW_SHOWMINIMIZED) END IF
END SUB
' XWindowMinimized ' ' Description: ' Check that current window is minimized ' ' Parameters: ' none ' ' Returns: ' nothing ' ' Example: ' XWindowMinized ' ' '
SUB XWindowMinimized STATIC
IF BWindowMinimized = 0 THEN XLogFailure "Active Window not Minimized" END IF
END SUB
' ' XWindowNotMinimized ' ' Description: ' Check that current window is not minimized ' ' Parameters: ' none ' ' Returns: ' nothing ' ' Example: ' XWindowNotMinimized ' ' '
SUB XWindowNotMinimized STATIC IF BWindowMinimized THEN XLogFailure "Active Window is Minimized" END IF
END SUB
' ' BWindowMinimized ' ' Description: ' Detect IF active window minimized ' ' Parameters: ' none ' ' Returns: ' TRUE if minimized, FALSE if not ' ' Example: ' BWindowMinimized ' ' '
FUNCTION BWindowMinimized% STATIC DIM bogus% DIM lhwndTemp% DIM lWndStyle&
lhwndTemp% = GetForegroundWindow ()
' Get the window's style attributes lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
BWindowMinimized = (lWndStyle& AND WS_MINIMIZE) <> 0
END FUNCTION
' ' XRestoreWindow ' ' Description: ' Restore the current active window. NOTE: You must make ' the icon the active window before calling XRestoreWin! ' ' Parameters: ' none ' ' Returns: ' nothing ' ' Example: ' XRestoreWindow ' ' '
SUB XRestoreWindow STATIC DIM bogus% DIM lhwndTemp% DIM lWndStyle&
lhwndTemp% = GetForegroundWindow ()
' Get the window's style attributes lWndStyle& = GetWindowLong(lhwndTemp%, GWL_STYLE)
' IF maximized, XLog the descrepancy IF ((lWndStyle& And WS_MINIMIZE) = 0) AND ((lWndStyle& And WS_MAXIMIZE) = 0) THEN XLogFailure "Active window is not minimized or maximized." ELSE bogus% = ShowWindow(lhwndTemp%, SW_RESTORE) END IF
END SUB
' ' XSizeActiveWindow(iXPixels, iYPixels, fAbsOrRel) ' ' Description: ' Moves the bottom-right corner of the active window ' to new coordiates iXPixels, iYPixels. IF fAbsOrRel ' is TRUE, the coordiates are absolute. IF fAbsOrRel ' is FALSE, the coordiates are relative to the current ' position. ' ' Parameters: ' iXPixels - X coordinate ' iYPixels - Y coordinate ' IF !fAbsOrRel FALSE, the X,Y coordinates are relative to the ' current mouse coordianates. ' ' Returns: ' nothing ' ' Example: ' XSizeActiveWindow iXPixels, iYPixels, fAbsOrRel ' ' '
SUB XSizeActiveWindow (iXPixels%, iYPixels%, fAbsOrRel%) STATIC
DIM xyTempRect As rect DIM iTempX% DIM iTempY% DIM temphWnd%
IF fAbsOrRel% THEN WSetWndSiz GetForegroundWindow(), iXPixels%, iYPixels% ELSE ' Find the active window temphWnd% = GetForegroundWindow
' Get the Rect of the active window GetWindowRect temphWnd%, xyTempRect ' Determine new X coordinate iTempX% = ((xyTempRect.wright - 1) - (xyTempRect.wleft)) + iXPixels%
' Determine new Y coordinate iTempY% = ((xyTempRect.bottom - 1) - (xyTempRect.top)) + iYPixels%
' size the window WSetWndSiz GetForegroundWindow(), iTempX%, iTempY%
END IF END SUB
' ' XMoveActiveWindow(iXPixels, iYPixels, fAbsOrRel) ' ' Description: ' Moves the top-left corner of the active window ' to new coordiates iXPixels, iYPixels. IF fAbsOrRel ' is TRUE, the coordiates are absolute. IF fAbsOrRel ' is FALSE, the coordiates are relative to the current ' position. ' ' Parameters: ' iXPixels - X coordinate ' iYPixels - Y coordinate ' IF !fAbsOrRel FALSE, the X,Y coordinates are relative to the ' current mouse coordianates. ' ' Returns: ' nothing ' ' Example: ' XMoveActiveWindow iXPixels, iYPixels, fAbsOrRel ' '
SUB XMoveActiveWindow (iXPixels%, iYPixels%, fAbsOrRel%) STATIC
DIM xyTempRect As Rect DIM iTempX% DIM iTempY% DIM temphWnd%
IF fAbsOrRel% THEN WSetWndPos GetForegroundWindow(), iXPixels%, iYPixels% ELSE ' Find the active window temphWnd% = GetForegroundWindow
' Get the Rect of the active window GetWindowRect temphWnd%, xyTempRect
' Determine new X coordinate iTempX% = xyTempRect.wleft + iXPixels%
' Determine new Y coordinate iTempY% = xyTempRect.top + iYPixels%
' move the window WSetWndPos GetForegroundWindow(), iTempX%, iTempY% END IF END SUB
|