“如何打开”;“微软边缘”;从c#等它关闭?
我正在构建一个Windows窗体应用程序,我想通过我的应用程序以特定URL打开“Microsoft Edge”,并等待用户关闭Edge窗口 我用以下代码进行了尝试:“如何打开”;“微软边缘”;从c#等它关闭?,c#,.net,process,windows-10,microsoft-edge,C#,.net,Process,Windows 10,Microsoft Edge,我正在构建一个Windows窗体应用程序,我想通过我的应用程序以特定URL打开“Microsoft Edge”,并等待用户关闭Edge窗口 我用以下代码进行了尝试: using (Process p = Process.Start("microsoft-edge:www.mysite.com")) { p.WaitForExit(); } 当我执行此代码时,Edge正在使用正确的URL启动。。。但是得到了一个空的对象引用。我从Process.Start获取的“p”对象为空 我认为这与W
using (Process p = Process.Start("microsoft-edge:www.mysite.com"))
{
p.WaitForExit();
}
当我执行此代码时,Edge正在使用正确的URL启动。。。但是得到了一个空的对象引用。我从Process.Start
获取的“p”对象为空
我认为这与Windows应用程序的重用有关
是否有人有解决方法/知道如何等待用户关闭Edge?来自较旧的解决方案-使用WebBrowser控件加载HTML。一旦获得数据,使用ObjectForScript调用c#方法在完成时进行通知
参见最后,我做到了: 启动Edge(至少)时,将创建两个进程: MicrosoftEdge和MicrosoftEdge CP MicrosoftEdge CP-foreach选项卡。因此,我们可以“等待”刚刚创建的新选项卡进程
//Edge process is "recycled", therefore no new process is returned.
Process.Start("microsoft-edge:www.mysite.com");
//We need to find the most recent MicrosoftEdgeCP process that is active
Process[] edgeProcessList = Process.GetProcessesByName("MicrosoftEdgeCP");
Process newestEdgeProcess = null;
foreach (Process theprocess in edgeProcessList)
{
if (newestEdgeProcess == null || theprocess.StartTime > newestEdgeProcess.StartTime)
{
newestEdgeProcess = theprocess;
}
}
newestEdgeProcess.WaitForExit();
那么,可以创建一个新的流程实例,设置StartInfo属性的文件名和参数成员,并对其调用Start。但是,您是在等待用户关闭您打开的网站,还是退出浏览器?如果您的流程仍然存在,您可以查看流程列表。当用户处理完您的web内容时,应该发生什么情况?为什么应用程序要等待它?听起来你正在走向“媒体中断”,迫使用户在窗口之间跳转。你不能在你的应用程序中显示web内容吗。没有简单的方法可以解决这个问题,你无法判断用户何时关闭选项卡以停止浏览网页。在打开“Edge”之前,我正在启动一个代理。它不能在内部浏览器中完成。我需要特定的边缘浏览器来渲染和显示网站。一旦用户浏览器关闭,我将关闭代理。我需要知道,当用户退出通过我的应用程序打开的浏览器时,网站也可能会打开其他选项卡。但我需要知道当所有选项卡都关闭时(通过打开的边缘应用程序被关闭),它不能在内部浏览器中完成。我需要特定的边缘浏览器来渲染和显示网站。