Is your feature request related to a problem? Please describe.
The screen curtain relies on an unreliable API for WOW64 applications like NVDA. If it fails silently on an untested version of Windows, personal or confidential information may be exposed on the display without a user knowing.
Describe the solution you'd like
Add a check for success when using the screen curtain.
Ensure it:
captures all displays
relies on a low level, reliable windows API, eg winGDI
can be confident in the success of the screen capture (eg an empty buffer after a failed copy could look result in a black, empty bitmap)
can be confident in the analysis of the screen capture
is fast, as iterating over many pixels is slow in python.
Describe alternatives you've considered
There are multiple options for implementing the check, using an API like winGDI
Using the wxWidgets API
a simple and fast, but not complete API. We would need to ensure the API is reliable as well.
Using the NVDA screenBitmap module
slow as it requires iterating over pixels within Python to check the image
A custom NVDA C++ implementation
requires dev time but can ensure no unintended changes compared to using an intermediate API
Is your feature request related to a problem? Please describe.
The screen curtain relies on an unreliable API for WOW64 applications like NVDA. If it fails silently on an untested version of Windows, personal or confidential information may be exposed on the display without a user knowing.
Describe the solution you'd like
Add a check for success when using the screen curtain.
Ensure it:
Describe alternatives you've considered
There are multiple options for implementing the check, using an API like winGDI
Additional context
See #12491