Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#程序关闭所有打开的窗口?_C#_Interop - Fatal编程技术网

如何从C#程序关闭所有打开的窗口?

如何从C#程序关闭所有打开的窗口?,c#,interop,C#,Interop,您好,我有一个windows应用程序,其中我显示了一个webbrowser,我有一个按钮,可以删除浏览器(它是一个预览),并转到我的应用程序中的另一个“视图”(另一个选项卡)。我的问题是,我的用户越来越高级,他们用链接构建HTML(没问题),但是链接可能会生成新的浏览器窗口(IExplorer),我的按钮需要关闭这些窗口,但是如何关闭呢 我已经编写了一些代码来遍历所有以“windows Internet Explorer”结尾的eht窗口,所有这些似乎都能正常工作——但我如何关闭它们呢?我试着这

您好,我有一个windows应用程序,其中我显示了一个webbrowser,我有一个按钮,可以删除浏览器(它是一个预览),并转到我的应用程序中的另一个“视图”(另一个选项卡)。我的问题是,我的用户越来越高级,他们用链接构建HTML(没问题),但是链接可能会生成新的浏览器窗口(IExplorer),我的按钮需要关闭这些窗口,但是如何关闭呢

我已经编写了一些代码来遍历所有以“windows Internet Explorer”结尾的eht窗口,所有这些似乎都能正常工作——但我如何关闭它们呢?我试着这样做:

SendMessage((int)hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
这似乎可行,但浏览器会弹出一个对话框,询问我是否要关闭所有选项卡的选项卡…如何解决这个问题

干杯

  • 浏览所有顶级iE窗口并关闭它们是个坏主意,除非你保证用户不能自己启动iE并浏览互联网。否则,您实际上可能会丢失用户数据(例如,用户在过去半小时内处理的电子邮件或博客帖子)

  • 如果不修改每个用户的IE设置,就无法轻松处理该对话框。您的另一个选择是查找该对话框并单击“是”按钮,但如果用户升级到IE9,该对话框将很脆弱,并且不能保证继续工作

  • 通过侦听BeforeNavigate事件并只允许保证在控件中进行的导航,您可能会阻止在新窗口中打开链接。然而,在某些情况下,IE可能仍然决定打开新窗口

  • 浏览所有顶级iE窗口并关闭它们是个坏主意,除非你保证用户不能自己启动iE并浏览互联网。否则,您实际上可能会丢失用户数据(例如,用户在过去半小时内处理的电子邮件或博客帖子)

  • 如果不修改每个用户的IE设置,就无法轻松处理该对话框。您的另一个选择是查找该对话框并单击“是”按钮,但如果用户升级到IE9,该对话框将很脆弱,并且不能保证继续工作

  • 通过侦听BeforeNavigate事件并只允许保证在控件中进行的导航,您可能会阻止在新窗口中打开链接。然而,在某些情况下,IE可能仍然决定打开新窗口

  • +1对1。我不希望应用程序不加区别地关闭我所有的IE窗口。我不希望应用程序随意关闭我所有的IE窗口。