当我打开CefSharp(winform)浏览器并在退出时关闭它时,如何启动/调用Asp.net核心应用程序



使用的工具:Visual Studio 2019,Asp.net core 5.0,CefSharp.WinForms v79.0

我已经创建了一个asp.net核心应用程序和一个CefSharp浏览器。

如果我点击app.core,然后点击浏览器,它会正常工作。

我想要一些";"自动化";整个过程。

如何在CefSharp完全加载/启动之前启动Asp.net核心应用程序

这可以在CefSharp浏览器中完成吗,

所以它会自动打开app.core,并且在关闭CefSharp时也会关闭它

我已经可以通过命令行做到这一点了

tasklist /fi "imagename eq APP.exe" |find ":" > nul
if errorlevel 1 taskkill /F /IM "APP.exe"
start C:ServerAPP.exe 
start C:CEFSHARPGUI.exe

您可以从GUI.EXE中启动和停止进程"C:ServerAPP.exe"-这是假设您有GUI.EXE的源代码

您需要在GUI.EXE源代码中执行以下操作(这里我假设您使用的是Windows窗体应用程序(:

  1. 在主窗体中添加Load事件处理程序。您需要从事件处理程序中启动"C:ServerAPP.exe"。您可以在事件处理程序中使用System.Diagnostics.Process.Start(@"C:ServerAPP.exe");来启动进程。请注意,此方法将返回可用于关闭应用程序的Process对象
  2. 在主窗体中添加Closing事件处理程序。在事件处理程序中,您需要停止"C:ServerAPP.exe"。您可以通过Process对象的CloseMainWindow方法来完成此操作

这对我很有效:

Form1.cs

private void Form1_Load(object sender, EventArgs e)
{
Process[] processName = Process.GetProcessesByName("APP");
if (processName.Length == 0)
{
Process myprocess = new Process();
myprocess.StartInfo.FileName = "C:\Server\APP.exe";
myprocess.Start();
}
}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
foreach (Process p in Process.GetProcessesByName("APP"))
{
p.Kill();
}
}

最新更新