2016-10-27 5 views
0

Zunächst einmal bin ich ein absoluter Anfänger, wenn es um VBscripts geht. Ich habe nur eine ASP-Datei in VB geschrieben, die eine Batch-Datei startet. Die Sache ist, dass ich etwas will, das anzeigt, dass die Seite wie ein gif geladen wird. Die Charge dauert fast 10 Minuten und ich bekomme eine leere Seite, bis sie fertig ist.Lade gif anzeigen, bevor die Seite erscheint

Dies ist meine gesamte Code

<%@ 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> 

ich versucht, ein Ereignis Onclick <asp:Button Text="Click here" OnClick="run_batch" runat="server"/> zu laufen, aber gibt mir einen 500 Seite Fehler, wenn ich die sender As Object, e As EventArgs als Parameter verwenden, wahrscheinlich, weil ich die Klassen nicht nur runns alles in eine Asp-Datei.

Danke.

Antwort

1

Das Problem ist, dass Ihr Code ausgeführt wird, sobald die Seite geladen wird. Definieren Sie, was Sie als Sub tun möchten, und rufen Sie das im Ereignishandler onload auf. Das Ereignis wird ausgelöst, sobald alles auf der Seite geladen ist.

Ich testete das folgende in einem hta und es funktioniert. Nicht sicher, wie gut es in Asp konvertiert.

<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> 

Alternativ für eine Schaltfläche Ansatz verwenden nur

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

Ihr Code funktioniert, aber kann ich eine HTA-Datei ausführen, ohne Download zu auffordert oder es laufen? Laden Sie einfach die .hta-Datei herunter. Ich möchte es im Browser ausführen. – roYal

+0

Ich habe kein Webserver-Setup auf meinem Computer, daher habe ich das .hta erstellt. Sie sollten nur den Ansatz aus diesem Code übernehmen und auf Ihr ursprüngliches Skript anwenden. – FloatingKiwi

+0

Ich führe dies von Visual Studio mit einem lokalen IIS. Es scheint, ich kann nur .hta Explorer und andere Browser nur die Datei herunterladen. .hta scheint eine Art Internet Explorer Lösung zu sein. – roYal

Verwandte Themen