繁体   English   中英

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

[英]How to start/call an Asp.net core app when i open CefSharp(winform) browser and close it on exit?

使用的工具: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:\Server\APP.exe 

start C:\CEFSHARP\GUI.exe

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

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

  1. Load事件处理程序添加到您的主窗体。 从您的事件处理程序中,您需要启动"C:\Server\APP.exe" 您可以使用System.Diagnostics.Process.Start(@"C:\Server\APP.exe"); 在事件处理程序中启动进程。 请注意,此方法将返回可用于关闭应用程序的Process object。
  2. Closing事件处理程序添加到您的主窗体。 在您的事件处理程序中,您将需要停止"C:\Server\APP.exe"您可以通过进程 object 的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();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM