我正在使用 C# (WPF)
我有进程的完整路径,我使用 Process.Start()
命令启动进程。
Process p = new Process();
p.shartInfo.FileName = fullPathOfFile;
p.Start();
现在,我想显示我之前启动的进程(在 Start()
命令之后)。
即,如果我启动记事本并且用户最小化记事本并单击应用程序中的启动记事本
,我想检查我之前是否运行过记事本,如果是,则向用户显示正在运行的记事本。
if p is running:
Show p
else
Start p
我怎样才能在 C# 中做到这一点?
谢谢。
最佳答案
要检查具有以下名称的进程是否已在运行,您可以使用 Process.GetProcessesByName(processName)
方法。
如果进程正在运行,您可以使用 Pinvoke
最大化其窗口。调用ShowWindow
与 SW_SHOWMAXIMIZED
参数。
否则您可以直接调用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/