Skip to content
axxbetadocs
v0.2.26next
GitHub

Windows

View .mdOpen in Claude

Windows apps, through UI Automation, the accessibility tree Narrator reads, and the Java Access Bridge for Java apps: native apps (Windows Forms, WPF, WinUI), web views (WebView2: Tauri, Wails), Electron, Qt, Java and Flutter, as they ship.

Axx runs apps on the signed-in user’s desktop: run it in a terminal there, or as a scheduled task for that user (schtasks /it), not as a service or over SSH, which have no desktop. Hosted Windows runners have one. axx doctor checks it.

Each scenario has the desktop, and a clean app. Desktop scenarios take the machine’s desktop in turns: while they run, the screen, the pointer and the keyboard are theirs. Before the app starts, its home is emptied: USERPROFILE, and APPDATA, LOCALAPPDATA, TEMP and TMP in it, which apps’ data folders follow (Java’s user.home too); the registry keys the registration names are emptied too, your own kept aside during the run and put back when it ends. The profile’s own folders, like Documents, are Windows’ to resolve, and stay yours. Java apps are read through the Java Access Bridge of the Java that runs them, which Axx switches on for the launch. An app’s ./ files are its home’s AppData\Roaming.

Add it to a project with axx pack add desktop-windows; it builds on desktop-core, which comes with it.

Given the {word} windows app with the following properties:
| property | value |

The table may start with the row naming its columns, as above, or go straight to its rows.

Register a Windows app. The app starts when a step launches it. On another OS, the registration does nothing, so a feature registers the app once for each OS it runs on.

Parameter Takes For example
{word} one word, with no spaces parcels, PX-4101
Property Takes Default
app the app: an .exe of the project, or a command required
args the arguments it starts with, a quoted one with spaces; a file of the project is relative to axx.yaml
env.<name> an environment variable it starts with, like env.PARCELS_API
registry the keys under HKEY_CURRENT_USER the app keeps its settings in, like Software\Parcels\Depot desk, separated by commas: emptied before each scenario
locale its language and region: Windows has none of an app’s own, so the machine’s apply, and the run says so
timezone its time zone: Windows has none of an app’s own, so the machine’s applies, and the run says so
owner system for an app the system runs already, like File Explorer (explorer.exe): the scenario reads it as it runs, and never resets, launches or stops it; the windows it shows during the scenario are closed as the scenario ends

Example:

Given the depot windows app with the following properties:
| app | ..\depot-desk\winforms\bin\Release\net8.0-windows\DepotDesk.exe |
| registry | Software\Parcels\Depot desk |

Since 0.2.0.