3

私はCを介してShellExecuteを使用していますが、1つの問題を除いて問題ないようです。

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

これで、印刷を開始するために OK を押すための印刷ダイアログを取得したいのですが、その代わりに MS Word がファイル C:\index.html がロードされた状態で開きます。

ShellExecuteでhtmlファイルの印刷機能を取得するには?

重要な点として、IE は私の既定のインターネット ブラウザーではありません。

4

1 に答える 1

6

ファイルを印刷するためにシェルの関連付けに依存していますが、それは非常に脆弱なアプローチです。ファイルを右クリックして [印刷] を選択すると、 への呼び出しと同じ動作が観察されますShellExecute

したがって、PrintShellExecute動詞を使用する場合は、マシンの構成を変更する必要があります。適切な方法で .html ファイルのPrint動詞を処理するようにマシンの関連付けが構成されていることを確認する必要があります。自分のマシンでそれを行うことはできますが、他の人のマシンでそれを行うことは期待できません。

代わりに、次のコマンドを実行して、HTML ファイルが確実に印刷されるようにすることができます。

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

ShellExecuteそれを簡単に呼び出しに変換できます。

于 2013-05-17T08:56:57.583 に答える