- 締切済み
JScriptでローカルのhtmlファイルを全画面で開く
JScriptをはじめたばかりで、いろいろWebサイトを見ながら試しているところです。 ローカルのhtmlファイルを直接ブラウザで開くとツールバーが表示されますが、 ツールバーなしで全画面(または1024x768)表示できるexeを作ろうとしています。 (作成したexeファイルと同じ階層のindex.htmlを開けばOK) JScriptならできそうだということで試しているのですが、知識不足で進みません。 ---------- import System; import System.Windows.Forms; import System.Drawing; class MyJsWindow extends Form { function MyJsWindow() { this.Top = 0; this.Left = 0; this.StartPosition = FormStartPosition.Manual; this.Height = 742; this.Width = 1024; location.href = "./index.html" } } Application.Run(new MyJsWindow()); ---------- location~あたりが違うようなのと、ツールバー/ステータスバーの消し方ができてません。 根本的に間違っている、という気もしますが、どうぞよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2>.Netの2.0が入っていない環境で利用することがあるため、マシンによっては使えませんでした。 そこが難点ですよね~。 JScript.NET にこだわるのでないなら、 .NET 1.? の開発環境(例えば、VB.NET)でWebBrowserコントロールを使って同じようにできたと思います。 また、EXEとそのフォームに表示するというのにこだわりがないのであれば、IEを起動する(ステータスバーは消せなかったかな?)EXEを作成することができます。 また、EXEにするということにこだわりがないのであれば、HTA形式でindex.html を作成すると、同じ内容を適当な表示で起動できると思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1>なんらかの方法で、現在のパスを取得して…という方法なのでしょうか? var fso = new ActiveXObject("Scripting.FileSystemObject"); var fileAbsPath = fso.GetAbsolutePathName("./index.html"); のようにすることで、相対パスファイルからフルパスを得ることができます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
.NET Framework 2.0 からは、 WebBrowser クラスがあって、これをForm に貼り付けるだけで、IEと同様の機能が付加できます。 http://msdn2.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx 以下、サンプル ---------------------------------------------------------------- import System; import System.Windows.Forms; import System.Drawing; var myForm = new Form(); var webBrowser1 = new WebBrowser(); myForm.StartPosition = FormStartPosition.Manual; myForm.Width = 1024; myForm.Height = 742; myForm.Top = 0; myForm.Left = 0; webBrowser1.Dock = DockStyle.Fill; myForm.Controls.Add(webBrowser1); webBrowser1.Navigate('E:/JScript/Sample/index.html');//フルパスで指定 Application.Run(Form(myForm));
補足
ありがとうございます。 なるほど、こういう使い方なんですね。 ところで、説明不足ですみませんが、 フルパスじゃなくて相対パス(同じ階層)が使えればいいのですが… コピーして使うことが前提なのでフルパスでは都合が悪いのです。 なんらかの方法で、現在のパスを取得して… という方法なのでしょうか?
お礼
御礼が遅くなってすみません。 とりあえず、教えていただいた情報で自分のマシンではできたのですが、 .Netの2.0が入っていない環境で利用することがあるため、 マシンによっては使えませんでした。 参考までに、最終はこんな結果です。 ---------- import System; import System.Windows.Forms; import System.Drawing; var myForm = new Form(); var webBrowser1 = new WebBrowser(); var fso = new ActiveXObject("Scripting.FileSystemObject"); var fileAbsPath = fso.GetAbsolutePathName("./index.html"); myForm.StartPosition = FormStartPosition.Manual; myForm.Width = 1024; myForm.Height = 742; myForm.Top = 0; myForm.Left = 0; webBrowser1.Dock = DockStyle.Fill; myForm.Controls.Add(webBrowser1); webBrowser1.Navigate(fileAbsPath); Application.Run(Form(myForm));