IEで現在表示中の内容をユーザーに1クリックで印刷させたくて
いろいろ検索した結果
<html>
<head>
<!-- ブラウザオブジェクトを宣言する -->
<OBJECT ID="thebrowser" WIDTH=0 HEIGHT=0
CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</OBJECT>
<SCRIPT LANGUAGE="VBScript">
<!--
'--- 印刷ルーチン
On Error Resume Next
Sub EnlivenPrint
On Error Resume Next
thebrowser.ExecWB 6, 2
End sub
-->
</SCRIPT>
</head>
<body>
<FORM>
<INPUT TYPE="BUTTON" VALUE="印刷" ONCLICK="EnlivenPrint()">
</body>
</html>
の様な形で実現できそう(たしか動作報告もあった)なのですが、
.ExecWBの引数に関わらず印刷ダイアログが出てしまいます。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/oen_a2z_5k38.asp によれば、.ExecWBメソッドはolecmdexecoptの値として
OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
OLECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
を取れるようになっていて、実際VBでフォーム上のWebBrowserコントロールに対し
Private Sub Command1_Click
WebBrowser1.ExecWB 6, 2
(もしくは WebBrowser1.ExecWB olecmdid_print, olecmdexecopt_dontpromptuser )
End Sub
とすると印刷ダイアログを出さずに印刷を実行できます。
この.ExecWBメソッドの振る舞いの違いに頭を悩ませているのですが
何か解決方法はありますでしょうか?。