Steps to reproduce:
- Start NVDA.
- Execute a software application that uses Windows'
CreateDesktop API (defined in user32.dll). See below for examples.
Actual behavior:
ctrl+alt+n does not launch NVDA on the second desktop.
Expected behavior:
ctrl+alt+n should launch NVDA on the second desktop.
NVDA logs, crash dumps and other attachments:
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
2022.3.2.27117
Windows version:
Windows 10 Home, 10.0.19044 Build 19044
Name and version of other software in use when reproducing the issue:
Applications that use the CreateDesktop Windows API, see below.
Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
no
If NVDA add-ons are disabled, is your problem still occurring?
no add-ons installed
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
yes
Tools that use the CreateDesktop API:
Safe Exam Browser
The problem has first been identified while running the Safe Exam Browser application (https://safeexambrowser.org/):
- Download and install the latest Safe Exam Browser version
- Run the "SEB Configuration Tool". In the "Security Tab", enable "Create new desktop" under "Kiosk Mode". Save the Settings ("File" --> "Save Settings").
- Close any running Messengers or Video Call applications (or add exceptions under "Applications")
- Start NVDA
- Start Safe Exam Browser
- NVDA will not read the contents
- To quit, click the button in the bottom right corner
Safe Exam Browser will create a new Desktop, where its main window will appear. However, the contents of the window are not read by NVDA.
Separate CreateDesktop Tool
To make sure the problem was not limited to SEB, we tested it with a separate tool.
WARNING: you should run this tool in a virtual machine, or save your work before running it, because it might require you to hard-reboot your PC.
- Download the C++ file here https://github.com/MalwareTech/CreateDesktop/blob/master/Main.cpp
- Compile it to an EXE file. If you use Visual Studio, you might need to change line 41 to
hidden_desktop = CreateHiddenDesktop((char*)"MalwareTech_Hidden");
- Start NVDA
- Run this tool (WARNING: run this in a VM, or save your work before running the tool - the tool does not offer an option to go back to the previous desktop)
The tool will invoke CreateDesktop to create a new desktop. However, the contents of the new desktop are not read by NVDA.
Steps to reproduce:
CreateDesktopAPI (defined inuser32.dll). See below for examples.Actual behavior:
ctrl+alt+ndoes not launch NVDA on the second desktop.Expected behavior:
ctrl+alt+nshould launch NVDA on the second desktop.NVDA logs, crash dumps and other attachments:
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
2022.3.2.27117
Windows version:
Windows 10 Home, 10.0.19044 Build 19044
Name and version of other software in use when reproducing the issue:
Applications that use the
CreateDesktopWindows API, see below.Other information about your system:
Other questions
Does the issue still occur after restarting your computer?
yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
no
If NVDA add-ons are disabled, is your problem still occurring?
no add-ons installed
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
yes
Tools that use the
CreateDesktopAPI:Safe Exam Browser
The problem has first been identified while running the Safe Exam Browser application (https://safeexambrowser.org/):
Safe Exam Browser will create a new Desktop, where its main window will appear. However, the contents of the window are not read by NVDA.
Separate CreateDesktop Tool
To make sure the problem was not limited to SEB, we tested it with a separate tool.
WARNING: you should run this tool in a virtual machine, or save your work before running it, because it might require you to hard-reboot your PC.
hidden_desktop = CreateHiddenDesktop((char*)"MalwareTech_Hidden");The tool will invoke
CreateDesktopto create a new desktop. However, the contents of the new desktop are not read by NVDA.