gpt4 book ai didi

c# - 将另一个应用程序置于最前面

转载 作者:行者123 更新时间:2023-11-30 14:22:24 25 4
gpt4 key购买 nike

我构建了一个 C# Windows 窗体应用程序。加载表单时,它是全屏的。表单上有启动其他应用程序(不是表单)的图标。我正在尝试确定应用程序是否已经在运行,如果没有,则启动它,否则将其置于最前面。我已经完成了确定应用程序是否正在运行,如果不是,则启动它,如果它是,我只是不知道如何将它带到前面。我已经在 Google 和 Stack Overflow 上阅读了其他结果,但无法让它们发挥作用。

非常感谢任何帮助!

到目前为止,我的代码是:

private void button4_Click(object sender, EventArgs e)
{
Process[] processName = Process.GetProcessesByName("ProgramName");
if (processName.Length == 0)
{
//Start application here
Process.Start("C:\\bin\\ProgramName.exe");
}
else
{
//Set foreground window
?
}
}

最佳答案

[System.Runtime.InteropServices.DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr handle);

private IntPtr handle;

private void button4_Click(object sender, EventArgs e)
{
Process[] processName = Process.GetProcessesByName("ProgramName");
if (processName.Length == 0)
{
//Start application here
Process.Start("C:\\bin\\ProgramName.exe");
}
else
{
//Set foreground window
handle = processName[0].MainWindowHandle;
SetForegroundWindow(handle);
}
}

如果您还希望显示最小化的窗口,请使用:

if (IsIconic(handle))
ShowWindow(handle, SW_RESTORE);

关于c# - 将另一个应用程序置于最前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49822314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com