How do I bring an unmanaged application window to front, and make it the active window for (simulated) user input

后端 未结 3 912
滥情空心
滥情空心 2020-12-03 14:27

I am assuming I need to use pinvoke but I am not sure which function calls are needed.

Scenario: a legacy application will be running, I will have Handle for that ap

3条回答
  •  南笙
    南笙 (楼主)
    2020-12-03 15:15

    If you don't have a handle to the window, use this before :

    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    

    Now assuming you have a handle to the application window :

    [DllImport("user32.dll", SetLastError = true)]
    static extern bool SetForegroundWindow(IntPtr hWnd);
    

    This will make the taskbar flash if another window has keyboard focus.

    If you want to force the window to come to the front, use ForceForegroundWindow (sample implementation).

提交回复
热议问题