IE からアプリケーションを実行するには、セキュリティゾーン別に 運用をよく考えて設定する必要があります。 通常、インターネットは「インターネットゾーン」なので、 WEB ページからアプリケーションを実行するには、「信頼するサイト」 に登録し、多少危険ですが、AvtiveX が無効になっているのを最低限、 ダイアログで確認するように設定する必要があります。 その結果、実行時に、AvtiveX を実行してもかまわないか、 ユーザーに確認するダイアログが、オブジェクト作成時に表示されます。 ですが、IE には、隠された「マイ コンピュータ」ゾーンがあり、 その対象は、ローカルファイルシステムであり、そのデフォルトの設定 で、結果的には実行可能になると思います。 ( 厳密には、IE6 やら IE7 やら XP SP2 やらで変遷があると思いますが )いずれにしても、設定次第で即実行可能にもできますし、 実行不能にする事もできます。ただ、最近はこのへんが複雑になってきているのも事実です。 Now, with IE7, it's broken. About URL Security Zones ネットワーク プロトコルのロックダウン ですから、以上の二つの運用の自信が無い場合は、 HTML を HTA で作成したフレームに埋め込む事によって、 全くセキュリティを考えずに実行可能です。
<meta http-equiv="content-type" content="text/html; charset=SHIFT_JIS"> <SCRIPT type="text/vbscript" language="vbscript"> Set WshShell = CreateObject( "WScript.Shell" ) Function webrun(no) Select Case no Case 0 WshShell.Run("notepad.exe") Case 1 WshShell.Run("regedit.exe") End Select End Function </SCRIPT> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <LINK rel="stylesheet" href="style.css"> </HEAD> <BODY> <pre> <A href="vbscript:" onClick='webrun(0)'>メモ帳の実行</A> <A href="vbscript:" onClick='webrun(1)'>レジストリの実行</A> </pre> </BODY> </HTML> <SCRIPT for=window event=onload language="VBScript"> ' 親フレーム(一つ)が存在する場合に、画面一杯に広げる if parent.document.getElementsByTagName("FRAME").length = 1 then top.moveTo 0, 0 top.resizeTo screen.width, screen.height - 32 end if </SCRIPT>
※ IE に表示させるHTMLの先頭に VBScript を書くと、 ※ そのページのデフォルト言語がVBScript になります ( 最近は、その前に META でキャラクタセットを指定しないと動かない可能性があります ) 以下は、HTA として実行する為の上記 HTML を埋め込む枠です。 ( application="yes" によって実現されています ) ※ ICON で指定する画像は、WEB上にするといいと思います。run.hta
<HTML> <HEAD> <TITLE>HTA Frame</TITLE> <META http-equiv="Content-Type" content="text/html; charset=shift_jis"> <HTA:APPLICATION ID="Sqlwin" BORDERSTYLE="sunken" INNERBORDER="yes" ICON="db.ico" > </HEAD> <FRAMESET id="TopFrame" rows="*"> <FRAME name="HTAFrame" src="run.htm" application="yes"> </FRAMESET>
|
【IE/HTAの最新記事】