ShellExecute,"打印"

Win*_*Too 2 winapi

我通过C使用ShellExecute,除了一个问题外似乎没问题.

ShellExecute(NULL, "print", "C:\\index.html", NULL, NULL, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)

有了这个我想得到打印对话框按OK确定开始打印,而不是MS Word打开文件C:\ index.html加载.

如何使用ShellExecute在html文件上获取打印功能?

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

Dav*_*nan 5

您依靠shell的关联来打印文件,但这是一种非常脆弱的方法.如果您右键单击该文件并选择打印,您将观察到与您的呼叫相同的行为ShellExecute.

所以,如果你想使用ShellExecute与打印动词,你需要改变你的机器的配置.您需要确保将计算机的关联配置为以适合您的方式处理.html文件上的Print动词.您可以为您的机器执行此操作,但您不能指望为其他人的机器执行此操作.

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

rundll32.exe %windir%\system32\mshtml.dll,PrintHTML "C:\index.html"
Run Code Online (Sandbox Code Playgroud)

您可以将其轻松转换为ShellExecute通话.