Shell执行,“打印”

问题描述 投票:0回答:2

我通过 C 使用 ShellExecute,除了一个问题之外,似乎工作正常。

ShellExecute(NULL, "print", "C:\\index.html", NULL, NULL, SW_HIDE);

有了这个,我想获得打印对话框,按“确定”开始打印,但不是 MS Word 打开并加载文件 C:\index.html。

如何使用 ShellExecute 获得 html 文件的打印功能?

需要注意的是,IE 不是我的默认互联网浏览器。

winapi
2个回答
7
投票

您依赖 shell 的关联来打印文件,但这是一种非常脆弱的方法。如果右键单击该文件并选择 Print,您将观察到与调用

ShellExecute
相同的行为。

因此,如果您想将

ShellExecute
Print 动词一起使用,您将需要更改机器的配置。您需要确保机器的关联配置为以适合您的方式处理 .html 文件上的 Print 动词。您可以为自己的机器执行此操作,但不能指望对其他人的机器执行此操作。

您可以运行此命令以确保打印 HTML 文件:

rundll32.exe %windir%\system32\mshtml.dll,PrintHTML "C:\index.html"

您可以轻松地将其转化为

ShellExecute
通话。


0
投票

您可以尝试使用此代码:

set objShell = createobject("Shell.Application") objShell.ShellExecute "\folder\file.xxx", "", "", "print", 0 set objShell = nothing

就这样

© www.soinside.com 2019 - 2024. All rights reserved.