• 締切済み

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~あたりが違うようなのと、ツールバー/ステータスバーの消し方ができてません。 根本的に間違っている、という気もしますが、どうぞよろしくお願いいたします。

  • qa203
  • お礼率33% (1/3)

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2>.Netの2.0が入っていない環境で利用することがあるため、マシンによっては使えませんでした。 そこが難点ですよね~。 JScript.NET にこだわるのでないなら、 .NET 1.? の開発環境(例えば、VB.NET)でWebBrowserコントロールを使って同じようにできたと思います。 また、EXEとそのフォームに表示するというのにこだわりがないのであれば、IEを起動する(ステータスバーは消せなかったかな?)EXEを作成することができます。 また、EXEにするということにこだわりがないのであれば、HTA形式でindex.html を作成すると、同じ内容を適当な表示で起動できると思います。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>なんらかの方法で、現在のパスを取得して…という方法なのでしょうか? var fso = new ActiveXObject("Scripting.FileSystemObject"); var fileAbsPath = fso.GetAbsolutePathName("./index.html"); のようにすることで、相対パスファイルからフルパスを得ることができます。

qa203
質問者

お礼

御礼が遅くなってすみません。 とりあえず、教えていただいた情報で自分のマシンではできたのですが、 .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));

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

.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));

qa203
質問者

補足

ありがとうございます。 なるほど、こういう使い方なんですね。 ところで、説明不足ですみませんが、 フルパスじゃなくて相対パス(同じ階層)が使えればいいのですが… コピーして使うことが前提なのでフルパスでは都合が悪いのです。 なんらかの方法で、現在のパスを取得して… という方法なのでしょうか?

関連するQ&A

  • IE8β2のjscript.dllはどこにあるでしょうか?

    Sleipnirでjavaの表示が速くなると聞いて IE8β2のjscriptを利用したいのですが 落としたIE8-WindowsXP-x86-JPN.exeファイルを lachaで解凍してもjscript.dllが見つかりません。 私がDLしたファイルが元々違うのか解凍の方法に問題があるのでしょうか?

  • OnPaintメソッドが実行されずに、困っています

    JScript .NET に関する質問なので、カテゴリが違うと思いますが、ご存知の方がいらっしゃったらよろしくお願いします。 import Accessibility; import System.Drawing; import System.Windows.Forms; new Form1().ShowDialog(); class Form1 extends Form { function Form1() { Text = "Form1"; BackColor = SystemColors.Window; ForeColor = SystemColors.WindowText; ResizeRedraw = true; } protected function OnPaint(e) { var g = e.Graphics; var pen = new Pen(ForeColor); g.DrawLine(pen, 0, 0, ClientSize.Width - 1, ClientSize.Height - 1); g.DrawLine(pen, 0, ClientSize.Height - 1, ClientSize.Width - 1, 0); } }

  • J#でjava.awt.frameからSystem.Windows.Forms.Formを呼び出す

    Windows XP SP2にVisual J# 2005 Express Editionをインストールして使用しています。 今まで、J2SE 5.0を使用していて、GUIの部分はSwingで書いていたのですが、J#に移行したいと思っています。 J#はSwingを一部サポートしているのですが、JTextPaneが使えないので、その部分だけ、J#のSystem.Windows.Forms.FormとSystem.Windows.Forms.RichTextBoxを使って作り替えようと思っています。そこで、java.awt.Frameにjava.awt.Buttonを配置してそのボタンが押されたときにFormを表示させたいのですが、Form.Show()すると表示されたFormがきちんと表示されず、フリーズしてしまいます。 以下に、ソースコードを載せますので、問題点を指摘していただけたら幸いです。 import System.Windows.Forms.Form; import System.Windows.Forms.RichTextBox; import System.Drawing.*; import System.ComponentModel.*; import java.awt.*; import java.awt.event.*; class test implements ActionListener{  Frame frame;  Form f;  RichTextBox tb;  Button b;  IContainer components;  void testGUI(){   this.b=new Button("test");   this.b.addActionListener(this);   this.tb=new RichTextBox();   this.f=new Form();   this.f.get_Controls().Add(this.tb);   this.f.set_Name("Form1");   this.f.set_Text("Form1");   this.frame=new Frame();   this.frame.setSize(100,100);   this.frame.add(this.b);   this.frame.show();  }  public static void main(String[] args){   test2 t2=new test2();   t2.testGUI();  }  private void f_Load(Object sender, System.EventArgs e){}  public void actionPerformed(ActionEvent ae){   if(ae.getSource()==this.b){    this.f.Show();   }  } }

  • VisualStudio 2008 Express

    無料でネットからダウンロードしたVisualStudio 2008 Express Edition のフォームをつかってGUIの勉強をしています。 非情報系学生のための C/C++ 入門 というサイトにある コースの 「第三回  GUI と画像処理プログラミング 」をやってみましたが、フォーム上のボタンを押せばメッセージボックスが出てくるはずなのに、何も起こりません。 何が原因なのかわかりません。詳しい方、どうか知恵を貸してください。  ちなみにそのサイトのアドレスは以下のとおりです。 http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/index.html ボタンをフォームに貼り付けると自動的に生成されるイベントハンドラーに、自分の追加した部分も含めたヘッダーファイルの内容を下に乗せておきます。 // *************************** // Form1.h file #pragma once namespace MyGUI_NET { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Form1 の概要 /// /// 警告: このクラスの名前を変更する場合、このクラスが依存するすべての .resx ファイルに関連付けられた /// マネージ リソース コンパイラ ツールに対して 'Resource File Name' プロパティを /// 変更する必要があります。この変更を行わないと、 /// デザイナと、このフォームに関連付けられたローカライズ済みリソースとが、 /// 正しく相互に利用できなくなります。 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: ここにコンストラクタ コードを追加します // } protected: /// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button1; protected: protected: private: /// <summary> /// 必要なデザイナ変数です。 /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// デザイナ サポートに必要なメソッドです。このメソッドの内容を /// コード エディタで変更しないでください。 /// </summary> void InitializeComponent(void) { this->button1 = (gcnew System::Windows::Forms::Button()); this->SuspendLayout(); // // button1 // this->button1->BackColor = System::Drawing::Color::PeachPuff; this->button1->Location = System::Drawing::Point(34, 35); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(185, 55); this->button1->TabIndex = 0; this->button1->Text = L"click me"; this->button1->UseVisualStyleBackColor = false; // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 12); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(292, 266); this->Controls->Add(this->button1); this->Name = L"Form1"; this->Text = L"Form1"; this->ResumeLayout(false); } #pragma endregion // event handler for button 1 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { MessageBox::Show("こんにちは"); // 自分が追加した一行 } }; } //****************** どうぞよろしくお願いします。

  • TreeGridViewへの入力カラム追加

    下記サイトからTreeGridViewのソースをダウンロードし、自分のプログラムに組み込みました。 http://blogs.msdn.com/b/markrideout/archive/2006/01/08/510700.aspx そして下記の通りnameColumnというカラムを追加し、ReadOnly=falseにしましたが、ダブルクリックしても入力することができません。 (お恥ずかしながら初心者です・・・) nameColumnに入力可能にする方法をご存じの方がいたらご教授願います。 private void InitializeComponent() { this.components = new System.ComponentModel.Container(); AdvancedDataGridView.TreeGridNode treeGridNode1 = new AdvancedDataGridView.TreeGridNode(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.treeGridView1 = new AdvancedDataGridView.TreeGridView(); this.treeColumn = new AdvancedDataGridView.TreeGridColumn(); this.nameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); ((System.ComponentModel.ISupportInitialize)(this.treeGridView1)).BeginInit(); this.SuspendLayout(); // // treeGridView1 // this.treeGridView1.AllowUserToAddRows = false; this.treeGridView1.AllowUserToDeleteRows = false; this.treeGridView1.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleVertical; this.treeGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.treeColumn, this.nameColumn}); this.treeGridView1.Dock = System.Windows.Forms.DockStyle.Fill; this.treeGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically; this.treeGridView1.Location = new System.Drawing.Point(0, 0); this.treeGridView1.Name = "treeGridView1"; treeGridNode1.Height = 21; this.treeGridView1.Nodes.Add(treeGridNode1); this.treeGridView1.RowHeadersVisible = false; this.treeGridView1.Size = new System.Drawing.Size(361, 267); this.treeGridView1.TabIndex = 0; // // treeColumn // this.treeColumn.HeaderText = "Tree"; this.treeColumn.Name = "treeColumn"; this.treeColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // nameColumn // this.nameColumn.HeaderText = "Name"; this.nameColumn.Name = "nameColumn"; this.nameColumn.ReadOnly = false; this.nameColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(361, 267); this.Controls.Add(this.treeGridView1); this.Name = "Form1"; this.Text = "Form1"; ((System.ComponentModel.ISupportInitialize)(this.treeGridView1)).EndInit(); this.ResumeLayout(false); } #endregion private AdvancedDataGridView.TreeGridView treeGridView1; private AdvancedDataGridView.TreeGridColumn treeColumn; private System.Windows.Forms.DataGridViewTextBoxColumn nameColumn;

  • フォームを画面のど真ん中に表示させたいのですが

    フォームを画面のど真ん中に表示させたいのですが、 http://dobon.net/vb/dotnet/form/startposition.html を見たのですがコードの書き方がよくわかりません。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim f As New Form1() 'フォームを画面の真ん中に表示する f.StartPosition = FormStartPosition.CenterScreenf.Show() End Sub End Class こうすると、「FormStartPosition.CenterScreenf」の部分に波線がひかれます。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(0, 0) End Sub End Class これで左は時に表示する事は出来るのですが、真ん中に表示させるにはどうすればいいでしょうか?

  • C# datagridviewの使い方

    vs community2017 ver15.1でC#を独学しています。 親フォームで取得したデータを子フォームにあるdatagridviewで表示させたいのですが、うまくいきません。 子formのdesigner.csでstaticをpublicにしています。 public System.Windows.Forms.DataGridView dataGridView1; public System.Windows.Forms.DataGridViewTextBoxColumn Column1; public System.Windows.Forms.DataGridViewTextBoxColumn Column2; public System.Windows.Forms.DataGridViewTextBoxColumn Column3; public System.Windows.Forms.DataGridViewTextBoxColumn Column4; 親formのcsファイルで以下のように使用しています。 Form2 kofm = new Form2(); kofm.dataGridView1[0, 0].Value = "aaa"; kofm.StartPosition = FormStartPosition.CenterScreen; kofm.ShowDialog(); これで実行すると、以下のエラーになります。 System.ArgumentOutOfRangeException が発生しました HResult=0x80131502 Message=インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。 親フォームのボタンをクリックし、子フォームのdatagridviewに表示させるにはどのようにすればよろしいのでしょうか? 教えてください。 よろしくお願いします。

  • デザインからのプロパティからではなく、コードから直接変更しても問題ない

    デザインからのプロパティからではなく、コードから直接変更しても問題ないのでしょうか? C言語初心者です。 C++のForm.hを見ると #pragma region Windows Form Designer generated code /// <summary> /// デザイナー サポートに必要なメソッドです。このメソッドの内容を /// コード エディターで変更しないでください。 /// </summary> void InitializeComponent(void) { this->button1 = (gcnew System::Windows::Forms::Button()); this->SuspendLayout(); // // button1 // this->button1->Location = System::Drawing::Point(127, 31); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(75, 23); this->button1->TabIndex = 0; this->button1->Text = L"button1aaa"; と書いてありますが this->button1->Text = L"button1あああ"; と直接変更しても問題なく動作しました。 こういう部分は、 デザインからのプロパティからではなくコードから直接変更しても問題ないのでしょうか?

  • 実行ファイルのアイコン

    こんにちわ。 VB6.0SP5で開発していますが, 実行ファイル(.exe)のアイコンを Windowsのステータスバーに表示したり, Alt+Tabでアプリを切り替えるときにも選択できるようにしたいのですが,どのようにすれば良いでしょうか? 教えてください。お願いします。

  • ウィンドウサイズの変更

    <a href="javascript:resizeTo(800,600);location.href='sample.html';">sample</a> で、ウィンドウが800×600に変更されますよね。 この際、同時にツールバーやステータスバーなどを非表示にするにはどうすればよいのでしょうか?