Skip to content

Windows ​

The Windows module has functionality to inspect and manipulate the Windows of the desktop.

All windows ​

The all() method will return an array of window proxy objects representing all windows on the desktop.

Example ​

javascript
var allWindows = Windows.all();

Windows for current application ​

The forApp() method returns an array of window proxy objects representing all the windows of the application.

Example ​

javascript
var applicationWindows = Windows.forApp();

Primary window ​

The primary property returns a single window proxy object representing the primary or main window of the application.

Example ​

javascript
var pw = Windows.primary;

Frontmost/focused window ​

Get the frontmost or focused window with this command.

Example ​

javascript
var w = Windows.focused;
// and the same can be done via
w = Windows.frontMost;

Given a window handle ​

Get access to a window if you know its handle.

js
// 12345 is probably not a valid handle, I'm an example ...
var w = Windows.byHwnd(12345);

Window Proxy ​

The window proxy object returned by the Windows module methods represents a desktop window and can be manipulated with the following methods and properties.

Close ​

Close the window.

javascript
Windows.primary.close();

Move ​

Move the window to the given x,y coordinates.

javascript
var pw = Windows.primary;
// Move the window to (100,100) from the topmost left corner of the screen.
pw.move(100, 100);

Resize ​

Resize the window to the given dimensions.

javascript
var pw = Windows.primary;
pw.resize(100, 100);

Focus ​

Make the window the focused (topmost) window.

javascript
var pw = Windows.primary;
pw.focus();

Maximize ​

Maximize the window.

javascript
var pw = Windows.primary;
pw.maximize();

Minimize ​

Minimize the window.

javascript
var pw = Windows.primary;
pw.minimize();

Show ​

Show a hidden window.

javascript
Windows.primary.show();

Restore ​

Restore the original state of the window (after having maximized or minimized it).

javascript
var pw = Windows.primary;
pw.restore();

Screenshot ​

Grab a screenshot of the window. The screenshot will be returned as a base64 encoded string. Accepts an optional options object.

  • options optional object with options for screenshot, supported options:
    • focus [bool] whether to focus the window prior to taking the screenshot - defaults to true
javascript
var pw = Windows.primary;

// img is a base64 encoded string
var img = pw.screenshot();

// get screenshot without setting focus first
var img2 = pw.screenshot({ focus: false });

SendKeys ​

Send keyboard strokes to the window.

javascript
var pw = Windows.primary;
pw.sendKeys("abc");

Hwnd ​

Get the window handle of the window.

javascript
var pw = Windows.primary;
var hwnd = pw.hwnd;

Title ​

Get the title of the window.

javascript
var pw = Windows.primary;
var t = pw.title;

Class ​

Get the class of the window.

javascript
var pw = Windows.primary;
var t = pw.class;

IsPrimary ​

Get/set whether this window is considered the primary for the application.

javascript
var ws = Windows.forApp();
if (!ws[0].isPrimary) {
  ws[0].isPrimary = true;
}

IsMaximized ​

Get a boolean value indicating whether or not the window is maximized.

javascript
var ws = Windows.forApp();
if (!ws[0].isMaximized) {
  // do something then
}

IsMinimized ​

Get a boolean value indicating whether or not the window is minimized.

javascript
var ws = Windows.forApp();
if (!ws[0].isMinimized) {
  // do something then
}

Bounds ​

Get/set the bounds (location and size) of the window.

javascript
var pw = Windows.primary;
var bounds = pw.bounds;

// Move 10px left and down
bounds.x = bounds.x + 10;
bounds.y = bounds.y + 10;
// Decrease width and height with 10px
bounds.width = bounds.width - 10;
bounds.height = bounds.height - 10;

// Update the window bounds with the new values
pw.bounds = bounds;

Process for window ​

javascript
window.process();
// is a ProcessProxy object

Native field actions for window ​

Carry out a field action on the window using the native driver. This can be useful in various situations:

  • Dealing with native dialogs in a java/chrome/firefox/edge apps without having to create an additional native app
  • Identifying a window based on presence of a specific field

The window.field(path) method returns a normal field object backed by a native app driver. See the Field documentation for a full description of available actions.

javascript
window.field("**/(name)OK").click();

Transparency ​

A transparency property. The value to set is between 0 and 255. 0 is fully transparent, 255 is fully opaque.

js
Windows.primary.transparency = 60;
Dialog.info("Transparency is " + Windows.primary.transparency, "");

Native field in window ​

Resolve a field in the given window using the native driver. This is particularly useful for interacting with native dialogs in browser apps such as a printer dialog or a file dialog in a Chrome app. It may also be useful for java apps embedded in a native shell. The field method returns a field object with the usual See methods/properties.

javascript
// This could be a case of a chrome flow that needs to pick a file for upload
window.field("**/(type)edit").input("C:\\aFolder\\aFile.txt");
window.field("**/Ok").click();