: HTAsoft.com
<html> <head> <title id="title">ProgressBar 2.1</title> <HTA:APPLICATION ID="porgbar" APPLICATIONNAME="progbartest"> <script language="vbscript"> '--------------------------------- 'This is an example of progressbar '--------------------------------- Public x,y, MyTitle, iTimerID, KeepGoing ReDim PorgBarArray(1) Sub Window_Onload MyTitle = document.Title End Sub Sub Go x=0 '--- x will be the number of item done. y=350 '--- y will be the number of item to do. '---FOR TEST ONLY--- Set fso = CreateObject("Scripting.FileSystemObject") Set oof = fso.CreateTextFile("testpb.vbs", True) oof.WriteLine "wscript.sleep WScript.Arguments(0)" '---We'll run a sleep script so that 'we can see the progressbar going slowly oof.Close Set WshShell = CreateObject("WScript.Shell") '----END OF TEST ONLY---- ReDim PorgBarArray(y+1) '---Set an array where the content of the progressbar will be defined For i=1 To y PorgBarArray(i) = "g" '---Fill the array with "g", a square symbol in the Webdings font table Next Progress(1) Do Until x=y x=x+1 WshShell.Run "testpb.vbs 250",1,True '----FOR TEST ONLY '---ERROR TESTING--- If x=4 Or x=11 Or x=17 Or x=20 Or x=29 Or x=30 Then '---Conditions to create a fake error PorgBarArray(x) = "<span style=""color:red"">g</span>" '---It will be shown in red Else PorgBarArray(x) = "g" '---normal End If '----END OF ERROR TESTING---- If KeepGoing = False Or window.screenTop > 10000 Then '---"window.screenTop > 10000" prevents 'the loop for continuing when the window is closed PorgBarArray(x+1) = "</span>g" '---end of blue span Exit Do Else PorgBarArray(x+1) = "</span><span style=""color:green"">g</span>" '--- next to do is 'shown in green + end of blue span End If Loop PorgBarArray(y+1) = "</span>" '---This makes the last block blue Progress(0) End Sub Sub Progress(v) Select Case v Case 0 '---Stoping the progressbar activity--- window.clearInterval(iTimerID) '----Cancel the order to launch the Sub at the 500 milliseconds interval iTimerID ="" '----Tells the program that iTimerID is nothing. 'Usefull to know if the progressbar is in activity or not. id("BtnGo").disabled = False '----Allow the user to restart id("BtnCancel").disabled = True '-----No need to press this button anymore id("BtnExit").disabled = False '----Allow the user to exit the program Progress(2) '----Update the progressbar one last time MsgBox "Operation finished.",,MyTitle Case 1 '---Starting the progressbar--- id("ProgBarDone").innerHtml = Join(PorgBarArray) '---Populate the progressbar with blocks the first time PorgBarArray(0) = "<span style=""color:blue"">" '---Give the "blue" tag to next done items iTimerID = window.setInterval("Progress(2)", 500) '----- Launching the Sub Progress 'every 500 milliseconds with the variable 2 id("BtnGo").disabled = True '----No need to press the Go button twice id("BtnCancel").disabled = False '---Allow the user to stop the process id("BtnExit").disabled = True '----Forbid the user to close the program before it's over KeepGoing = True Case 2 '---Updating the progressbar--- document.Title = FormatPercent(x/y, 0) & MyTitle '---Add a nice percentage indication of the progrss 'in the title bar, also visible in the desktop taskbar id("ProgBarText").innerText = x & "/" & y '----Shows the number of itmed done 'and the number of items to do id("ProgBarDone").innerHtml = Join(PorgBarArray) '---Fill the Progress bar with the Array 'where the blocks are defined End Select End Sub Function id(o) Set id = document.getElementById(o) End Function Sub Help MsgBox "This is an example of progressbar in HTA written by Fredledingue.",,MyTitle End Sub </script> </head> <body bgcolor="GreenYellow"> <!-- Basic buttons --> <input id="BtnGo" type="button" value="Go" onclick="Go"> <input id="BtnCancel" type="button" value="Cancel" onclick="KeepGoing=False" disabled="True"> <input id="BtnExit" type="button" value="Exit" onclick="window.close"> <input id="BtnHelp" type="button" value="Help" onclick="Help"> <br> <!-- Progress bar --> Done: <span id="ProgBarText">?</span><br> <span id="ProgBarDone" style="font-family:Webdings; color:silver"></span> <!-- Progress bar (End) --> </body> </html>
See also HTAsoft's homepage
and Maxthon Plugins
and Installed Files Checker
and W98SE Post uSP3 Updates