当我打开 CefSharp(winform) 浏览器并在退出时关闭它时,如何 start/call 一个 Asp.net 核心应用程序?
How to start/call an Asp.net core app when i open CefSharp(winform) browser and close it on exit?
使用的工具:Visual Studio2019,Asp.netcore 5.0,CefSharp.WinFormsv79.0
我已经创建了一个 asp.net 核心应用程序和一个 CefSharp 浏览器。
如果我点击 app.core 然后在浏览器上它工作正常。
我想要某种“自动化”整个过程。
如何在 CefSharp 完全 loads/starts 之前启动 Asp.net 核心应用程序 loads/starts。
这可以在 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
源代码中执行以下操作(这里我假设您使用的是 Windows Forms 应用程序):
- 向您的主窗体添加一个 Load 事件处理程序。从您的事件处理程序中,您需要启动
"C:\Server\APP.exe"
。您可以在事件处理程序中使用 System.Diagnostics.Process.Start(@"C:\Server\APP.exe");
来启动进程。请注意,此方法将 return Process
可用于关闭应用程序的对象。
- 添加 Process 对象的 Closing event handler to your main form. From within your event handler you will need to stop
"C:\Server\APP.exe"
You can do this via 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();
}
}
使用的工具:Visual Studio2019,Asp.netcore 5.0,CefSharp.WinFormsv79.0
我已经创建了一个 asp.net 核心应用程序和一个 CefSharp 浏览器。
如果我点击 app.core 然后在浏览器上它工作正常。
我想要某种“自动化”整个过程。
如何在 CefSharp 完全 loads/starts 之前启动 Asp.net 核心应用程序 loads/starts。
这可以在 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
源代码中执行以下操作(这里我假设您使用的是 Windows Forms 应用程序):
- 向您的主窗体添加一个 Load 事件处理程序。从您的事件处理程序中,您需要启动
"C:\Server\APP.exe"
。您可以在事件处理程序中使用System.Diagnostics.Process.Start(@"C:\Server\APP.exe");
来启动进程。请注意,此方法将 returnProcess
可用于关闭应用程序的对象。 - 添加 Process 对象的 Closing event handler to your main form. From within your event handler you will need to stop
"C:\Server\APP.exe"
You can do this via 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();
}
}