• 締切済み

HTAで、こんなボタンを作成したい。

手順書にそってバッチファイルを実行しているのですが、やり忘れなどを防ぐ為 HTA+VBSで簡単な操作パネル的(ボタン型ランチャー?)なものを作ろうと思っていますが、 どう作成してよいのやら不明です。 イメージしているものは、 『(1)設定』ボタンを押下で、(1)バッチファイル実行 Msg:(1)バッチファイルが終了しましたか[OK]   Msgをクローズして →『(1)設定』ボタンの色を赤に変える※過程が分かるようにしたいため   で上記のようなボタンを15個ぐらい作成。 ※途中で再起動しても、進行過程が残るようにしたいと思うのですが、ご教授願えますでしょうか。  具体的なコードと簡単で構わないので解説して頂けましたらと思います。  以上、よろしくお願いいたします。

みんなの回答

  • maxeed1
  • ベストアンサー率0% (0/0)
回答No.1

回答を作ってみました。 --- <!DOCTYPE html> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <title>サンプル・プログラム</title> </head> <body> <form name="form1"> <input type="button" name="btn_do_bat01" value="実行1" onClick="do_bat01()" /><br /> <input type="button" name="btn_do_bat02" value="実行2" onClick="do_bat02()" /><br /> <br /> <input type="button" name="btn_reset" value="リセット" onClick="do_reset()" /><br /> </form> <SCRIPT FOR=window EVENT=onload LANGUAGE="VbScript"> Set objFSO = CreateObject("Scripting.FileSystemObject") Set SaveFile = objFSO.OpenTextFile("save.txt" , 1 , False, 0) Do Until SaveFile.AtEndOfStream strLine = SaveFile.ReadLine Select Case strLine Case "do_bat01" document.form1.btn_do_bat01.style.backgroundColor = "RED" Case "do_bat02" document.form1.btn_do_bat02.style.backgroundColor = "RED" ' ... End Select Loop SaveFile.Close </SCRIPT> <script language="VBScript"> Dim WshShell, oExec Set WshShell = CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") Sub do_bat01() Set oExec = WshShell.Exec("test.bat") MsgBox "終わりましたか?" document.form1.btn_do_bat01.style.backgroundColor = "RED" Set SaveFile = objFSO.OpenTextFile("save.txt" , 8 , True, 0) SaveFile.WriteLine("do_bat01") End Sub Sub do_bat02() Set oExec = WshShell.Exec("test.bat") MsgBox "終わりましたか?" document.form1.btn_do_bat02.style.backgroundColor = "RED" Set SaveFile = objFSO.OpenTextFile("save.txt" , 8 , True, 0) SaveFile.WriteLine("do_bat02") End Sub Sub do_reset() Set SaveFile = objFSO.OpenTextFile("save.txt" , 2 , True, 0) SaveFile.Write("") document.form1.btn_do_bat01.style.backgroundColor = "" document.form1.btn_do_bat02.style.backgroundColor = "" End Sub </script> </body></html> --- htmlファイルに保存して表示し、「実行1」「実行2」ボタンとも同じフォルダにある「test.bat」を起動するだけです。 backgroundColor = "RED"でボタンの色を赤に変更します(disabled=Trueで一度押したボタンは押せないようにするとかもできそうです)。 途中で再起動しても、進行過程が残るようにするため、 ファイル読み書きを使って「save.txt」を作り、実行した関数の名前を書込んで置き、onload の時に読込んで関数名があればボタンを赤に変更しています。 resetでSaveファイルを空にし、ボタン色を標準に戻しています。 似たような感じで「do_bat03」「do_bat04」と増やしていけば出来ると思います。 エラー処理は特にしていません。 参考になれば幸いです

yama0919
質問者

お礼

早速作成していただきまして、ありがとうございます。 ご連絡が遅くなりましてすみません。 確認してみます。 ありがとうございました。

関連するQ&A

  • HTAで、こんなボタンが作りたい。

    HTA(HTML Applications)で簡単な操作パネル的なものを作ろうと思っています。 イメージしているものは、 ・『開始』ボタンを押下で外部ファイルa.vbsを実行し、ボタン上部のス   ペースに『稼動中』と表示。 ・『停止』ボタンを押下で外部ファイルb.vbsを実行し、ボタン上部のス   ペースに『非稼動中』と表示。 ・ボタンは1つで、始めは『開始』ボタンのみ。  『開始』を押下すると『停止』に変わる。 という感じです。  ボタン2つで片方をdisableでグレーアウトさせる、でも良いかと思っています。  アドバイス等有りましたらお願い致します。贅沢を言わさせていただくと、具体的なコードと簡単で構わないので解説して頂けたら幸いです。 OS:Windows98

  • htaからExcelファイルを作成する方法

    htaからVBScriptを使用して、Excelファイルを作成したいのですが、 Set xls = CreateObject("Excel.Sheet") を実行するとエラーが出てしまいます。 htaからVBScriptを使用して、 Excelファイルを作成する方法はないのでしょうか?

  • htaファイルの呼び出し

    現在業務にて必要となる資料(フォルダやExcel、URL)へのアクセスをhtaファイル(今後A.htaとする)のボタン経由で 行っております。アクセスが必要となる資料の増加に伴い、ボタン経由で別ウィンドウ(別htaファイル=今後B.htaとする)を起動する 仕組みの構築を進めております。 そこでA.htaファイル内でVBScriptでB.htaファイルを起動する仕組みを作りました。しかしながら、ファイルサーバ上に 両htaファイルを配置し、実行したところ、B.htaファイル起動時に実行するかの確認ダイアログが出力されてしまいました。 このダイアログを出力しないようにしたいのですが、良い方法はございますでしょうか。 ※尚、そもそも本構成(hta実行をVBScriptで行っている)に問題がある場合は、ご指摘頂けますと幸いです。 ■A.htaファイル ==================================================================================================================================== Function submado() Set objWShell = CreateObject("WScript.Shell") objWShell.Run "submado.hta" End Function ~~~~~~~~割愛~~~~~~~~ <td><input type="button" class="btn-primary" value="サブウィンドウ" onclick="submado()" style="WIDTH: 200px; HEIGHT: 25px"></td> ====================================================================================================================================

  • htaファイルに渡したパスを取得するには。

    vbsファイルを開くと「ファイル選択」ダイアログを表示してテキストファイルを選択するとそのファイルのパス先をhtaファイルのSPANタグに渡して表示するところまで作成する事ができました。このSPANタグに表示したパスをVBScriptで取得する事が解らず、困っています。 どのようにすればhtaファイルに渡したパスをVBScriptで取得する方法をご存知の方がいましたらアドバイスいただけませんでしょうか。 何卒、宜しくお願いします。

  • マナーモードへのショートカット作成したいです

    マナーモードへのショートカット作成したいです できるのでしょうか? ボタン一つでマナーモードに切り替われば良いかなと考えているのですが。 ランチャーはblaunchを入れているので、そこに登録できると良いのですが、どうにかなりませんでしょうか。 コントロールパネル系(設定)などのファイルはどこにあるのでしょうか。 お願いします

  • HTA + VBScript (+ Javascript)でコントロールボックスを制御できますか?

    HTA + VBScript(+ Javascript)で「特定のファイルをイントラネット内の別PC(Server)からコピーするツール」を作成しました。イメージ的にはフォーム上の「更新ボタン」をクリックするとコピーダイアログが表示されるようなものです。 このツールを使いファイルコピー中(コピーダイアログが表示されているとき)にHTAのフォームを終了するとプロセス上にmshta.exeが残りHTAを再度実行することができない状態になります。 そこで「コピー中のみHTAフォームに付随するコントロールボックスの×ボタンを無効にする」ような機能を追加したいのですが、HTA + VBScriptでコントロールボックスの制御に介入することはできるのでしょうか? コントロールボックス自体を非表示にすることはできますが認知度の高い表現なので残したいと考えています。 また、コピー中にHTAフォームのvisibilityをhiddenにしてフォームを隠しておく方法も考えたのですが、フォーム上にコピー中であることを示すメッセージを表示したりしているのでこの案もできれば採用したくありません。 何か良い方法がありましたら教えてください。よろしくお願いします。 OS:Windows XP Pro IE:Internet Explorer

  • タスクスケジューラでのtelnet実行について

    よろしくお願いいたします。 ネットワーク機器に定期的にログインチェックを行う必要が生じたため、 バッチファイルとVBSを作成し、手動で実行すると問題なく動作しました。 ところがWindowsタスクスケジューラでユーザーがログオフした状態で実行すると 異常終了してしまいました。 処理の流れは以下になります。 (1)バッチファイル起動 (2)バッチファイルが適当な名前を付けたコマンドプロンプトを起動。 (3)バッチファイルがVBSを起動 (4)VBSが(2)で起動したコマンドプロンプトをアクティブにする。 (5)VBSがSendKeysメソッドでコマンドプロンプト上でtelnetを実行 原因が分からず困っています。 ユーザーがログオフしている環境ではtelnetは実行できないものなのでしょうか。 どうぞご教授下さい。

  • バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。

    バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。 あるフォルダにvbsファイルとそれを実行するためのバッチファイル、vbsで読み込むリストファイルを置いています。 これを現在ログインしているのとは別のユーザで実行したいのですが、ファイルの記述をすべてフルパス指定しなければ動きませんでした。 しかし、フォルダが変わるたびにすべてのパスを書き換えるのが大変なため、以下のように修正を加えたいと思っています。 (1)バッチファイルでvbsを実行する際、カレントディレクトリ情報を取得し、パスを確定。(CDコマンド) (2)vbsファイル実行 (3)(1)のCDコマンドで読み込んだ情報をvbsに引き渡し、リスト読み込み。 バッチファイルからvbsに引き渡す部分、vbsがバッチファイルから受け取る部分の記述が分かりません。 一例を教えていただけないでしょうか?

  • この方法で固まるのを回避できる?

    アクセスにコマンドボタンをつけて、ボタンを押すとFileSystemObjectでファイル操作をするのですが その間アクセスがフリーズというか、実行中のため動くことができません。 このような場合、 VBSで同じ操作を作り、アクセスのコマンドボタンを押下→ Shell "WScript.exe で、vbs実行 をした場合、 アクセスにコマンドボタンを押してもアクセスは固まらずに処理が実行できるのでしょうか?

  • HTA(HTMLアプリケーション)にて「処理中」を表示したい

    HTA(HTMLアプリケーション)にて、ボタンをクリックしたら、mdb(アクセス)よりテキストファイルを作成する機能を作成しています。 しかし、60秒かかるので「処理中」というのを表示したい。 <div id="ing"></div>へdocument.all("ing").innertext = "処理中" と指定しても、処理終了後に表示され、ボタンを押した直後に表示されません。 無理なのでしょうか?

    • ベストアンサー
    • HTML

専門家に質問してみよう