Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
741 views
in Technique[技术] by (71.8m points)

winapi - ShellExecute, "Print"

I am using ShellExecute through C and that seem's work OK except one issue.

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

With this I would like to get print dialog for press OK for start printing but instead of that MS Word opens with file C:index.html loaded.

How to get print functionality on html files with ShellExecute?

If is important to note, IE is not my default internet browser.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You are relying on the shell's associations to print the file, but that's a terribly brittle approach. If you right click on the file and select Print you'll observe the same behaviour as your call to ShellExecute.

So, if you want to use ShellExecute with the Print verb you will need to change your machine's configuration. You need to make sure that the machine's associations are configured to handle the Print verb on a .html file in a way that suits you. You could do that for your machine but you cannot expect to do it for other people's machines.

Instead you could run this command to be sure that the HTML file will be printed:

rundll32.exe %windir%system32mshtml.dll,PrintHTML "C:index.html"

You can translate that readily into a ShellExecute call.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...