我目前正在尝试使用 mshtml.dll 打印 HTML 文件。在注册表中查找我找到的 html 文件,以下打印到条目:
"%systemroot%\system32\rundll32.exe"
"%systemroot%\system32\mshtml.dll",PrintHTML "%1" "%2" "%3" "%4"
没想到有一些参数要传给mshtml.dll,mshtml.dll的参数是什么(这个注册表信息中编号为%1、%2、%3、%4)?
我目前正在尝试使用 mshtml.dll 打印 HTML 文件。在注册表中查找我找到的 html 文件,以下打印到条目:
"%systemroot%\system32\rundll32.exe"
"%systemroot%\system32\mshtml.dll",PrintHTML "%1" "%2" "%3" "%4"
没想到有一些参数要传给mshtml.dll,mshtml.dll的参数是什么(这个注册表信息中编号为%1、%2、%3、%4)?
您在 htmlfile progid 的 printto 动词中发现了这一点。当您从资源管理器中拖动 HTML 文件并将其放在打印机快捷方式上时,它会运行。printto 动词有以下参数:
%1:HTML 文件的路径
%2:打印机名称
%3:打印机驱动程序名称(可选)
%4:打印机端口名称(可选)
依赖未记录的函数是不明智的,你不能依赖它在下一个 Windows 版本中仍然有效。使用 WebBrowser.Print() 是记录的方式。本机代码中的 IWebBrowser2::ExecWB()。
打印机的名称都不是强制性的,实际上在 htmlfile progid 的“打印”动词中,只为同一命令指定了一个参数。顺便说一句:我试图用打印机的名称(带和不带引号)替换 %2 但它没有做任何不同的事情,也就是说,打印对话框仍然存在。在 Windows 10 和 Windows 7 上试过。