2016-10-27 10 views
0

まず、VBscriptsに関しては初心者です。 バッチファイルを起動するVBで書かれたASPファイルは1つしかありません。 問題は、ページがgifのようにロードされていることを示すものが欲しいということです。バッチ処理には約10分かかってしまい、最終ページになるまで空白のページが表示されます。ページが表示される前にgifを表示する

これは私がonclickイベント<asp:Button Text="Click here" OnClick="run_batch" runat="server"/>を実行しようとした

<%@ Language = VBScript %> 
<HTML> 
    <script runat="server" language=VBScript> 
     ' The batch file is running here 
     Dim myExecutor 
     Dim commandline 

     commandline = "cmd.exe /c C:\test.bat " 
     Set myExecutor = Server.CreateObject("WScript.Shell") 
     myExecutor.Run commandline,0,true 
     Set myExecutor = Nothing 
     Response.Write "The batch run is finnished <p> " 
    </script> 
    <body> 
     The batch is loading. <!--renders after batch is finnished :/ --> 
    </body> 
</HTML> 

私の全体のコードですが、私はクラスを持っていけないので、私はおそらくパラメータとしてsender As Object, e As EventArgsを使用するときに私の500ページエラーを与えるだけですべてをrunns 1つのASPファイル。

ありがとうございました。

答えて

1

問題は、ページが読み込まれるとすぐにコードが実行されることです。あなたが何をしたいのかをSubとして定義し、それをonloadイベントハンドラで呼び出します。ページ上のすべてが読み込まれると、イベントが発生します。

私はhtaで以下をテストして動作します。どのくらいよくASPに変換するかわからない。ボタンアプローチのための別の方法として

<HTML> 
    <script language=VBScript> 
     sub DoStuff() 
      document.Write "<p>Doing stuff </p>" 
      CreateObject("WScript.Shell").Run "ping localhost",0,true 
      document.Write "<p>The batch run is finished <p> " 
     end sub 
    </script> 

    <body onload="DoStuff()"> 
    </body> 
</HTML> 

だけ

<button onclick="DoStuff()"> Do Stuff </button> 
+0

あなたのコードの作品を​​使用するが、私はそれをダウンロードしたり、実行を求めることなく、.HTAファイルを実行することができますか? Chromeは.htaファイルをダウンロードするだけです。私はブラウザでそれを実行したい。 – roYal

+0

自分のマシンにWebサーバーのセットアップがないので、なぜ.htaを作成したのですか。このコードからアプローチして元のスクリプトに適用するだけです。 – FloatingKiwi

+0

私はこれをローカルIISでVisual Studioから実行します。私は.htaエクスプローラしか動かすことができないと思われ、他のブラウザはファイルをダウンロードするだけです。 .htaは何らかのインターネットエクスプローラソリューションのようです。 – roYal

関連する問題