要传递给mshtml.dll的参数是什么?

时间:2013-11-14 15:00:50

标签: windows internet-explorer winapi printing

我目前正在尝试使用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)?

2 个答案:

答案 0 :(得分:4)

你在htmlfile progid的 printto 动词中找到了这个。从资源管理器中拖动HTML文件并将其放在打印机快捷方式上时会运行该文件。 printto动词有这些论点:

%1:HTML文件的路径
  %2:打印机名称
  %3:打印机驱动程序名称(可选)
  %4:打印机端口名称(可选)

依赖于未记录的函数是不明智的,你不能依赖于这仍然适用于下一个Windows版本。使用WebBrowser.Print()是记录的方式。本机代码中的IWebBrowser2 :: ExecWB()。

答案 1 :(得分:0)

打印机的名称都不是强制性的,实际上在 htmlfile progid 的“打印”动词中,只为同一命令指定了一个参数。 顺便说一句:我试图用打印机的名称(带引号和不带引号)替换 %2 但它没有做任何不同的事情,也就是说,打印对话框仍然存在。 在 Windows 10 和 Windows 7 上试过。