SetForegroundWindow in Remote Desktop Connection

2019-04-12 10:38发布

问题:

I have an application in C# which sends keys to another program. To do that I call SetForegroundWindow method before sending keys which works. Problem is when I am connected to the computer using RDC and minimize the RDC window or disconnect it then keys are not sent.

It happens because when in RDC mode, SetForegroundWindow method doesn't work in minimized or disconnected state. I have tried using SetActiveWindow, SetFocus and BringWindowToTop but no luck. Is there any way to do that?

回答1:

This is very common problem. When you disconnect or minimize the RDP window, GUI context is lost. But you can keep RDP non-minimized (focus can be lost safely). In other words just turn full-screen mode off and switch to another window if you want to continue work locally.

In our company testing teams use master-slave approach: master host initiates remote connections and keeps them non-minimized until each GUI automation task is done.