19.2 Robot Session (Picture in Picture): Child Session vs. Virtual Desktop
Key Takeaways
A Robot session (previously Picture in Picture) isolates an attended automation from the user's work.
Child Session (PiP Type New Session) supports hardware events and image automation; Virtual Desktop (New Desktop) is faster and lighter but supports neither.
Child Session PiP is enabled with UiRobot.exe PiP --Enable as administrator, or ENABLE_PIP=1 at installation, and is unavailable on Home editions of Windows 8 and 10.
PiP Options record whether a project was tested for PiP and whether it starts there by default.
Invoked workflows can target the Current, Process Default, Main, or Picture in Picture session.
19.2 Robot Session (Picture in Picture): Child Session vs. Virtual Desktop
Core Concept: A Robot session, previously called Picture in Picture (PiP), runs an attended automation isolated from the user's own work, so both can use the machine at once. There are two technologies: Child Session and Virtual Desktop.
The Two Technologies
| Child Session | Virtual Desktop | |
|---|---|---|
| How it isolates | A separate Windows session on the machine | The same Windows session, on a virtual desktop |
| PiP Type setting | New Session | New Desktop |
| Start time and resources | Slower to start; keeping one open all day gives similar performance | Faster and uses fewer resources |
| Hardware events UI automation | Supported | Not supported |
| Image-based automation | Supported | Not supported |
| Simulate and Windows Messages input | Supported | Supported (not every application supports these methods) |
| Edge and Chrome automation | Supported | Supported with UIAutomation Activities 22.4 or later |
| Windows editions | Not available on Home editions of Windows 8 and 10 | Runs on more Windows versions |
UiPath's guidance: Child Session suits complex automations that need hardware events and image-based automation, while Virtual Desktop is recommended when both work, because it is faster and lighter.
Enabling Child Session PiP
Child Session PiP must be enabled on the machine:
- On an existing installation, run
UiRobot.exe PiP --Enable(or--Disable) with administrator rights; the setting affects all users of the machine. - During a command-line installation, pass
ENABLE_PIP=1to the installer.
Things to remember about Child Session:
- You cannot restart or shut down the machine while the Robot session is active.
- The clipboard is shared between the Robot session and the main session.
- PIN and smart-card sign-in work only the first time a session is spawned; after that, the session is authenticated with username and password until the machine restarts.
Configuring Processes for a Robot Session
In Studio's Project Settings, the PiP Options record whether the project was tested in a Robot session and whether it starts there by default:
| PiP Options value | Effect when run |
|---|---|
| Tested for PiP usage; Starting in PiP | Starts in a Robot session by default |
| Tested for PiP usage; Not starting in PiP by default | Starts in the main session, but can be run in PiP |
| Not tested for PiP usage | Starts in the main session; running it in PiP asks the user to confirm |
PiP Type chooses New Session (child session) or New Desktop (virtual desktop).
In Studio, the Picture in Picture option on the Debug tab runs or debugs the process in a separate session or virtual desktop so you can test it before setting these options.
Choosing Where Invoked Workflows Run
Invoke Workflow File can choose a target session for the invoked workflow:
| Target session | Meaning |
|---|---|
| Current | The same session as the parent |
| Process Default | The session set in the invoked process's settings |
| Main | The user's main session |
| Picture in Picture | The Robot session |
A common design runs the background-safe parts in the Robot session and switches to Main for steps that must interact with the user's session, such as a message to the user or an application that cannot run twice.
Design Tips
- Choose input methods that work in both technologies. Prefer Simulate, or Windows Messages where the application supports it. Avoid hardware events if the process must run in a Virtual Desktop.
- Avoid image-based steps if you want Virtual Desktop.
- Watch shared resources. Both sessions share the clipboard and some applications allow only one instance per user; design around this, for example by not using copy and paste to move data.
- Test with PiP on in Studio before marking the project as tested.
Testing Checklist Before Marking a Project as Tested for PiP
- Run the process in Studio with the Picture in Picture option on the Debug tab, using the PiP Type you intend to publish.
- Confirm every UI step works with the chosen input methods.
- Check steps that use the clipboard or single-instance applications while the user is working in the main session.
- Only then set PiP Options to one of the "Tested for PiP usage" values and publish.
Worked Example
An HR onboarding automation fills forms in a web HR system and a desktop payroll client.
- The web steps use Simulate input and work in both technologies.
- One payroll screen only responds to hardware events, so the team chooses Child Session (PiP Type New Session), enables PiP on the machines with
UiRobot.exe PiP --Enable, and marks the project Tested for PiP usage; Starting in PiP. - A final confirmation dialog is invoked with target session Main so the HR specialist sees it in their own session.
Common Traps
- Virtual Desktop does not support hardware events or image-based automation.
- Child Session is not available on Home editions of Windows 8 and 10 and needs PiP enabled with administrator rights.
- "Not tested for PiP usage" does not block PiP; it asks the user to confirm.
An attended process relies on hardware events and image-based clicks and must run while the user keeps working. Which Robot session technology fits?
Virtual Desktop, because it is faster.
Either one; they support the same input methods.
Neither; such processes cannot run in a Robot session.
Child Session, because Virtual Desktop does not support hardware events or image-based automation.
How is Child Session PiP enabled on an existing installation?
Run UiRobot.exe PiP --Enable with administrator rights.
Enable it in Orchestrator tenant settings.
Set it per user in Assistant preferences.
It is always enabled and cannot be changed.
A project is marked "Not tested for PiP usage". What happens if a user runs it in a Robot session?
It is blocked.
It runs, but a dialog asks the user to confirm because it was not tested for PiP.
It runs in the main session instead.
It runs in a Virtual Desktop automatically.
Sections you finish are checked off in the contents.