Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SetForegroundWindow不';不能使用最小化的过程_C#_Winapi_Pinvoke_Minimized - Fatal编程技术网

C# SetForegroundWindow不';不能使用最小化的过程

C# SetForegroundWindow不';不能使用最小化的过程,c#,winapi,pinvoke,minimized,C#,Winapi,Pinvoke,Minimized,在这个问题上找不到任何好的答案,所以也许有人可以帮我。我正在做一个小的个人程序,我想把某个应用程序带到前台。它已经起作用了,但有一个小问题。当进程最小化时,我的代码就不起作用了。进程不会像未最小化时那样显示在前台 以下是代码片段: public partial class Form1 : Form { [DllImport("user32.dll")] static extern bool SetForegroundWindow(IntPtr hWnd); public

在这个问题上找不到任何好的答案,所以也许有人可以帮我。我正在做一个小的个人程序,我想把某个应用程序带到前台。它已经起作用了,但有一个小问题。当进程最小化时,我的代码就不起作用了。进程不会像未最小化时那样显示在前台

以下是代码片段:

public partial class Form1 : Form
{
    [DllImport("user32.dll")]
    static extern bool SetForegroundWindow(IntPtr hWnd);

    public Form1()
    {
       InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        System.Diagnostics.Process[] p
            = System.Diagnostics.Process.GetProcessesByName("Client");

        if (p.Length > 0)
        {
            SetForegroundWindow(p[0].MainWindowHandle);
        }
        else
        {
            MessageBox.Show("Window Not Found!");
        }
    }
}

您需要在尝试将其设置为前台窗口之前调用

可能使用
SW\u RESTORE

[DllImport(“user32.dll”)]
[返回:Marshallas(UnmanagedType.Bool)]
静态外部布尔显示窗口(IntPtr hWnd、int nCmdShow);
如果(p.Length>0)
{
ShowWindow(p[0].MainWindowHandle,9);
SetForegroundWindow(p[0].MainWindowHandle);
}
有一些关于
DllImport
和在C#中使用函数的示例