Edit: Phorum software ate some of my less than and greater than signs in the script, the below should work now though.
When you browse for the file to read line by line, you'll have to alt+tab to the file dialog box. Windows 7 doesn't include the UserAccounts.Commondialog for making a typical file dialog in vbscript so I had to use a workaround.
How to use:
First make a text file with only the commands you want to send. You have three aliases to make it work so typing:
startexplore - Opens a file dialog box to browse to a text file you want to read line by line, remember you have to alt+tab to get to the file dialog box.
pauseexplore - Pauses reading the text file
resumeexplore - Picks up where you left after pausing.
This is what you will have to do to setup the rest.
Setup a timer:
Interval: however long you want, I use two seconds
Label: readtext
script: readline
Setup three aliases:
Alias: pauseexplore
label: pauseexplore
script: pauseexplore
Alias: resumeexplore
label: resumeexplore
script: resumeexplore
Alias: startexplore
label: startexplore
script: startexplore
Copy and paste the following into a text file named script.vbs and configure your world to use that file as script, with language being vbscript.
sub readline(name)
numLine = world.getvariable ("numLine")
fileLines = world.getvariable ("fileLines")
strFilePath = world.getvariable ("strFilePath")
if numLine = fileLines Then
world.enabletimer "readtext", FALSE
world.note "Finished..."
Exit Sub
end if
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(strFilePath, ForReading)
For i = 1 to numLine
objTextFile.ReadLine
Next
strLine = objTextFile.ReadLine
world.send strLine
numLine = numLine + 1
world.setvariable "numLine", numLine
objTextFile.Close
end sub
Function ChooseFile( )
Dim objFSO, objShell, objTempFolder, strTempFileName, strFullTempFileName, objOpenFile, objTextFile, strTempTextFileName
Const TemporaryFolder = 2
Const ForReading = 1
strTempFileName = "OpenFile.hta"
strTempTextFileName = "OpenFile.txt"
Set objFSO= CreateObject("Scripting.FileSystemObject")
Set objTempFolder = objFSO.GetSpecialFolder(TemporaryFolder)
strFullTempFileName=objTempFolder.Path & "\" & strTempFileName
Set objOpenFile = objFSO.CreateTextFile(strFullTempFileName,True)
objOpenFile.writeline("<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=windows-1252"">")
objOpenFile.writeline("<title>Open File</title>")
objOpenFile.writeline("<script language=""vbscript"">")
objOpenFile.writeline("Sub Window_Onload")
objOpenFile.writeline("FileName.click")
objOpenFile.writeline("WriteFile FileName.value")
objOpenFile.writeline("Self.Close()")
objOpenFile.writeline("End Sub")
objOpenFile.writeline("Sub WriteFile(strFileName)")
objOpenFile.writeline("Dim objFSO, objTempFolder, strTempFileName, strFullTempFileName, objOpenFile")
objOpenFile.writeline("Const TemporaryFolder = 2")
objOpenFile.writeline("strTempFileName = ""OpenFile.txt""")
objOpenFile.writeline("Set objFSO=CreateObject(""Scripting.FileSystemObject"")")
objOpenFile.writeline("Set objTempFolder = objFSO.GetSpecialFolder(TemporaryFolder)")
objOpenFile.writeline("strFullTempFileName=objTempFolder.Path & ""\"" & strTempFileName")
objOpenFile.writeline("Set objOpenFile = objFSO.CreateTextFile(strFullTempFileName,True)")
objOpenFile.writeline("objOpenFile.writeline(strFileName)")
objOpenFile.writeline("objOpenFile.Close")
objOpenFile.writeline("Set objFSO=Nothing")
objOpenFile.writeline("Set objTempFolder=Nothing")
objOpenFile.writeline("Set objSleepFile=Nothing")
objOpenFile.writeline("Set objShell=Nothing")
objOpenFile.writeline("End Sub")
objOpenFile.writeline("</script>")
objOpenFile.writeline("<hta:application applicationname=""Open File"" border=""dialog"" borderstyle=""normal"" caption=""Open File"" contextmenu=""no"" maximizebutton=""no"" minimizebutton=""no"" navigable=""no"" scroll=""no"" selection=""no"" showintaskbar=""no"" singleinstance=""yes"" sysmenu=""no"" version=""1.0"" windowstate=""minimize"">")
objOpenFile.writeline("</head>")
objOpenFile.writeline("<body>")
objOpenFile.writeline("<input Application=""True"" type=""file"" id=""FileName"" />")
objOpenFile.writeline("</body>")
objOpenFile.writeline("</html>")
objOpenFile.Close
Set objShell = CreateObject("WScript.Shell")
objShell.Run "mshta.exe " & strFullTempFileName,2,True
objFSO.DeleteFile strFullTempFileName, True
Set objShell=Nothing
Set objOpenFile=Nothing
strFullTempFileName = objTempFolder.Path & "\" & strTempTextFileName
Set objTextFile=objFSO.OpenTextFile(strFullTempFileName, ForReading)
ChooseFile = objTextFile.ReadLine
objTextFile.Close
objFSO.DeleteFile strFullTempFileName, True
Set objTextFile=Nothing
Set objFSO=Nothing
Set objTempFolder=Nothing
End Function
sub startexplore(n, o, wc)
Const ForReading = 1
Const ForWriting = 2
strFilePath = ChooseFile
world.setvariable "strFilePath", strFilePath
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFilePath, ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
fileLines = i
i = i + 1
Loop
objFile.Close
world.note "Starting the explore..."
world.setvariable "numLine", 0
world.setvariable "fileLines", fileLines
world.enabletimer "readtext", TRUE
end sub
sub pauseexplore(n, o, wc)
world.note "Pausing the explore..."
world.enabletimer "readtext", FALSE
end sub
sub resumeexplore(n, o, wc)
world.note "Resuming explore..."
world.enabletimer "readtext", TRUE
end sub
sub onClose()
world.enabletimer "readtext", FALSE
world.EnableTrigger "entrig", FALSE
world.EnableTrigger "lookatit", FALSE
world.EnableTrigger "distrig", FALSE
end sub
Edited 3 time(s). Last edit at 12/09/2011 06:49AM by reject-o.