Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1363 lines
30 KiB

'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