How to bring a window foreground using c#?

前端 未结 6 1461
遥遥无期
遥遥无期 2020-12-30 13:37

I am trying to bring a window foreground. I am using this code. But its not working. Could someone please help?

ShowWindowAsync(wnd.hWnd, SW_SHOW);

SetForeg         


        
6条回答
  •  误落风尘
    2020-12-30 14:09

    This code restores and set focus to a window:

        [DllImport("User32.dll")]
        static extern int SetForegroundWindow(IntPtr hWnd);
    
        [DllImport("user32.dll")]
        internal static extern bool SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, Int32 lParam);
        static Int32 WM_SYSCOMMAND = 0x0112;
        static Int32 SC_RESTORE = 0xF120;
    

    And use it like this:

        var proc = Process.GetProcessesByName("YourProgram").FirstOrDefault();
    
        if (proc != null)
        {
            var pointer = proc.MainWindowHandle;
    
            SetForegroundWindow(pointer);
            SendMessage(pointer, WM_SYSCOMMAND, SC_RESTORE, 0);
        }
    

提交回复
热议问题