gpt4 book ai didi

c# - 进程启动并显示 C#

转载 作者:行者123 更新时间:2023-11-30 23:29:43 27 4
gpt4 key购买 nike

我正在使用 C# (WPF)
我有完整的进程路径,我使用 Process.Start() 命令启动进程。

Process p = new Process();
p.shartInfo.FileName = fullPathOfFile;
p.Start();

现在,我想显示我之前开始的过程(在 Start() 命令之后)。

即如果我启动记事本并且用户最小化记事本并在我的应用程序中单击 Start Notepad 我想检查我之前是否运行过记事本,如果是则向用户显示正在运行的记事本。

if p is running:
Show p
else
Start p


我如何在 C# 中执行此操作?
谢谢。

最佳答案

要检查具有以下名称的进程是否已在运行,您可以使用 Process.GetProcessesByName(processName) 方法。

如果进程正在运行,您可以使用 Pinvoke 最大化它的窗口。使用 SW_SHOWMAXIMIZED 参数调用 ShowWindow

否则,您可以简单地调用 Process.Start(processName) 来启动一个进程。尝试以下

internal class MyClass
{
//use this flag to maximize process window.
const int SW_SHOWMAXIMIZED = 3;
//use this flag to open process window normally.
const int SW_SHOWNORMAL = 1;

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

public static void Main(string[] args)
{
var processName = "notepad";
var process = Process.GetProcessesByName(processName).FirstOrDefault();
if (process != null)
ShowWindow(process.MainWindowHandle, SW_SHOWNORMAL);
else
Process.Start(processName);
}
}

关于c# - 进程启动并显示 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35286694/

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