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#中使用函数的示例