Window Titles and Text Advanced
(→Remarks) |
|||
Line 82: | Line 82: | ||
[PROPERTY1=Value1; PROPERTY2=Value2] | [PROPERTY1=Value1; PROPERTY2=Value2] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | '''Note''' : if a Value must contain a ";" it must be doubled. | ||
e.g. Wait a window of classname "Notepad" | e.g. Wait a window of classname "Notepad" | ||
Line 111: | Line 112: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | === Window Handles / HWNDs === | ||
+ | The SV datatype in Sputnik supports window handles (HWNDs) as Int64. A window handle is a special value that windows assigns to a window each time it is created. When you have a handle you may use it in place of the title parameter in any of the function calls that use the title/text convention. The advantage of using window handles is that if you have multiple copies of an application open - which have the same title/text - you can uniquely identify them when using handles. When you use a window handle for the title parameter then the text parameter is completely ignored. | ||
+ | |||
+ | Various functions such as WinGetHandle and WinList etc return these handles. | ||
+ | |||
+ | Note: Window handles will work no matter what WinTitleMatchMode/WinTextMatchMode is currently in use. | ||
[[Category:Core Function]] | [[Category:Core Function]] |
Revision as of 00:24, 5 December 2011
Description
Sputnik operates in one of five "Window matching" modes.
The modes are set with the Opt() function using the WinTitleMatchMode and WinTextMatchMode option.
Remarks
Mode 1 (default)
Matches partial titles from the start.
In this mode the a window titled Untitled - Notepad would be matched by "Untitled - Notepad", "Untitled", "Un", etc.
e.g.
WinWait("Untitled");
Mode 2
Matches partial titles from the end.
In this mode the a window titled Untitled - Notepad would be matched by "Untitled - Notepad", "Notepad", "pad", etc.
e.g.
WinWait("pad");
Mode 3
Matches any sub-string in the title.
In this mode a window titled Untitled - Notepad would be matched by "Untitled - Notepad", "Untitled", "Notepad", "pad", "d - N", etc.
e.g.
WinWait("Notepad");
Mode 4
Exact title match.
In this mode a window titled Untitled - Notepad would only be matched by "Untitled - Notepad"
e.g.
WinWait("Untitled - Notepad");
Mode 5
Advanced mode.
Must be replaced with Advanced Window Descriptions which does not need any mode to be set.
Advanced Window Descriptions
A special description can be used as the window title parameter.
This description can be used to identify a window by the following properties:
- TITLE - Window title
- TITLERX - Match Window title using a regular expression (Can be used on Title or Text params or both params to match the the given text of each param)
- TEXT - Window text
- TEXTRX - Match Window text using a regular expression (Can be used on Title or Text params or both params to match the the given text of each param)
- CLASS - The internal window class name
- CLASSRX - Match class using a regular expression (Can be used on Title or Text params or both params to match the the given text of each param)
- ACTIVE - Currently active window
- NOTACTIVE - This will not count the current active window in the search
- INSTANCE - The 1-based instance when all given properties match
One or more properties are used in the title parameter of a window command in the format:
[PROPERTY1=Value1; PROPERTY2=Value2]
Note : if a Value must contain a ";" it must be doubled.
e.g. Wait a window of classname "Notepad"
WinWaitActive("[CLASS=Notepad]", "");
e.g. Close the currently active window
WinClose("[ACTIVE]", "");
e.g. Wait for the 2nd instance of a window with title "My Window" and classname "My Class"
WinWait("[TITLE=My Window; CLASS=My Class; INSTANCE=2]", "");
e.g. Wait for the 2nd instance of a notepad
WinWait("[class=Notepad;INSTANCE=2]");
e.g. List windows matching a classname defined by a regular expression
WinList("[CLASSRX=#\d+]")
Window Handles / HWNDs
The SV datatype in Sputnik supports window handles (HWNDs) as Int64. A window handle is a special value that windows assigns to a window each time it is created. When you have a handle you may use it in place of the title parameter in any of the function calls that use the title/text convention. The advantage of using window handles is that if you have multiple copies of an application open - which have the same title/text - you can uniquely identify them when using handles. When you use a window handle for the title parameter then the text parameter is completely ignored.
Various functions such as WinGetHandle and WinList etc return these handles.
Note: Window handles will work no matter what WinTitleMatchMode/WinTextMatchMode is currently in use.