0

我正在尝试使用 Shell Execute() 打开本地 html 文档。但是,我需要的是,假设如果该特定文档已经打开,并且如果再次触发 ShellExecute,则不应再次打开该特定文件,而是将已打开的文件置于前台。你能建议我怎么做吗?

void main()
{  
  ShellExecute(NULL, "open", "C:\\prograomgiles\\help.html",
              NULL, NULL, SW_SHOWNORMAL);
 }
4

2 回答 2

1

这几乎是不可能的,因为这取决于哪个程序处理html文件以及它是如何工作的。假设我的操作系统html通过直接在打印机上打印文件来打开文件。您如何将打开的文件带到前台?

如果您想以您指定的方式显示 HTML 内容,请编写您自己的浏览器(这很简单,您可以 - 例如 -在 C#.NET 应用程序中嵌入 IE)并运行它而不是默认系统浏览器。然后,您将完全控制文件的显示方式。

于 2013-06-26T06:51:25.803 回答
1

许多 Web 浏览器响应 DDE 消息,尤其是WWW_OpenURL消息。不确定其他浏览器,但 IE 也会响应WWW_GetWindowInfoWWW_Activate消息,您可以使用这些消息枚举打开的窗口及其 URL,然后激活特定窗口。

于 2013-06-26T20:22:12.703 回答