Help - Search - Members - Calendar
Full Version: Hta List And Read All Text Files
MSFN Forums > Coding, Scripting and Servers > Programming (C++, Delphi, VB, etc.)

   
Google Internet Forums Unattended CD/DVD Guide
gunsmokingman
I was reading this page at the Hey Scripting Guy, How Can I Create an HTA For Displaying Log Files. I like the script so i modified it to list all the text files on the local computer.

Code updated to this link
Updated Rar
Yzöwl
Yes, I like it too!

All you need to do is change the txt to cmd and possibly give the option limiting the check to a particular drive or directory.

It took five and a half minutes to run on my PC for Text Files and believe me I've got more NT Command Scripts.
gunsmokingman
Code updated to this link
Updated Rar
Yzöwl
Made a couple of changes to the text due to the change in file types and also a spelling error
CODE
<TITLE>Text File and NT Command Script Lister</TITLE>
<HTA:APPLICATION ID='ListTxtCmd'
Scroll='No'
SCROLLFLAT ='No'
SingleInstance='Yes'
SysMenu='Yes'
ShowInTaskBar='No'
MaximizeButton='No'
MinimizeButton='Yes'
Border='Thin'
BORDERSTYLE ='complex'
INNERBORDER ='Yes'
Caption='Yes'
WindowState='Normal'
APPLICATIONNAME='List_Txt_Cmd_Files'
Icon='%SystemRoot%\explorer.exe'>
<STYLE Type="text/css">
Body
{
Font-Size:8.05pt;
Font-Weight:Bold;
Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;
Color:#001254;
BackGround-Color:Transparent;
Filter:progid:DXImageTransform.Microsoft.Gradient
(StartColorStr='#fdf7f1',endColorStr='#d1cbc5');
Margin-Top:1;
Margin-Bottom:1;
Margin-Left:4;
Margin-Right:4;
Padding-Top:1;
Padding-Bottom:1;
Padding-Left:4;
Padding-Right:4;
Text-Align:Center;
Vertical-Align:Top;
Border-Top:2px Solid #a6a29e;
Border-Bottom:3px Solid #cbc7c3;
Border-Left:2px Solid #b2aeaa;
Border-Right:3px Solid #bcb8b4;
}
BUTTON
{
Width:121pt;
Height:15;
Cursor:Hand;
Font-Size:8.05pt;
Font-Weight:Bold;
Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;
Color:#001142;
Filter:progid:DXImageTransform.Microsoft.Gradient
(StartColorSTR='#bbddff',endColorSTR='#224488');
Padding-Top:1;
Padding-Bottom:2;
Margin-Left:1pt;
Margin-Right:1pt;
Border-Top:1px TransParent;
Border-Bottom:2px TransParent;
Border-Left:1px TransParent;
Border-Right:2px TransParent;
}
TD
{
Font-Size:7.95pt;
Font-Weight:Bold;
Color:#5E5E5E;
Text-Align:Center;
Margin-Top:1;
Margin-Bottom:1;
}
</STYLE>
<script language="VBScript">
window.resizeTo 800,625
Const WINDOW_HANDLE = 0 ,OPTIONS = 0,MY_COMPUTER = &H11&
Dim Computer :Computer = "."
Dim Shell :Set Shell = CreateObject("Shell.Application")
Dim Act :Set Act = CreateObject("Wscript.Shell")
Dim Fso :Set Fso = CreateObject("Scripting.FileSystemObject")
Dim Wmi :Set Wmi = GetObject("winmgmts:\\" & Computer & "\root\cimv2")
Dim strFolderName
'-> Single Directory
Function DirectoryList
Dim Folder, FolderItem, ObjPath
Set Folder = Shell.BrowseForFolder(0, "Select a folder:", 0, MY_COMPUTER)
If Folder Is Nothing Then
Exit Function
Else
Set FolderItem = Folder.Self
ObjPath = FolderItem.Path
UpdateList()
Set colFiles = Wmi.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & ObjPath & "'} Where " _
& "ResultClass = CIM_DataFile")
For Each objFile In colFiles
If Right(Instr(objFile.Name,".txt"),4) Or Right(Instr(objFile.Name,".cmd"),4) Then
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
End If
Next
End If
C1=0
Exit Function
End Function
'-> Folder And Sub Folders
Function FolderSubFolderListAll()
Dim colSubfolders, Folder, FolderItem, ObjPath
Set Folder = Shell.BrowseForFolder(0, "Select a folder:", 0, MY_COMPUTER)
If Folder Is Nothing Then
Exit Function
Else
Set FolderItem = Folder.Self
strFolderName = FolderItem.Path
UpdateList()
Set colSubfolders = Wmi.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent")
Set colFiles = Wmi.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & strFolderName & "'} Where " _
& "ResultClass = CIM_DataFile")
For Each objFile in colFiles
If Right(Instr(objFile.Name,".txt"),4) Or Right(Instr(objFile.Name,".cmd"),4) Then
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
End If
Next
C1=0
For Each objFolder in colSubfolders
GetSubFolders strFolderName
Next
End If
Exit Function
End Function
'-> Sub Folders
Sub GetSubFolders(strFolderName)
On Error Resume Next
Set colSubfolders2 = Wmi.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent")
For Each objFolder2 in colSubfolders2
strFolderName = objFolder2.Name
Set colFiles = Wmi.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & strFolderName & "'} Where " _
& "ResultClass = CIM_DataFile")
For Each objFile in colFiles
If Right(Instr(objFile.Name,".txt"),4) Or Right(Instr(objFile.Name,".cmd"),4) Then
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
End If
Next
GetSubFolders strFolderName
Next
End Sub
'-> All Cmd And Text From Local Computer
Function ListAll()
UpdateList()
Set ColFiles = Wmi.ExecQuery("Select * from CIM_DataFile Where Extension = 'txt' Or Extension = 'cmd'")
For Each objFile In colFiles
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
Next
Exit Function
End Function
'-> Select From List
Function ReadFile()
On Error Resume Next
Set objFile = Fso.OpenTextFile(TxtFile.Value)
strContents = objFile.ReadAll
objFile.Close
Contents.Value = strContents
Path.innerHTML=TxtFile.Value
Exit Function
End Function
Function UpdateList()
For Each ObjList In TxtFile.Options :ObjList.RemoveNode :Next
Exit Function
End Function
</SCRIPT>
<BODY>Gunsmokingman List And Show Txt and Cmd Files
<TABLE Border='1' Align='Center'>
<!-- -->
<TD>
<BUTTON OnClick='DirectoryList()'>Single Directory</BUTTON>
</TD>
<!-- -->
<TD>
<BUTTON OnClick='FolderSubFolderListAll()'>Folder And Sub Folder</BUTTON>
</TD>
<!-- -->
<TD>
<BUTTON OnClick='ListAll()'>Local Computer</BUTTON>
</TD>
</TABLE>
<TABLE width="100%" Border='1'>
<TR>
<TD width="25%" valign="top">
<select size="35" name="TxtFile" onChange="ReadFile()"
style="Width:100%;Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;Font-Size:7.95pt;Font-Weight:Bold;">
</select>
</TD>
<TD width="75%" valign="top">
<textarea name="Contents" rows="35" cols="100"
Style='Width:100%;Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;Font-Size:7.95pt;'
ReadOnly>
</textarea>
</TD>
</TR>
</TABLE>
<SPAN ID='Path'> </SPAN>
<DIV Style='Color:#Ad1111;Margin-Top:5;'>
This may appear to not be responding, while the query is active!
</DIV>
</BODY>
I gotta say, I really do like this idea; thanks again GSM!
gunsmokingman
Yzöwl Thanks thumbup.gif
Code updated to this link
Updated Rar
I made a App in VB 2008 that does more or less what the hta does. This requires net framework to be
installed, for the app to work.
gunsmokingman
I have made a couple of changes to the HTA
1:\ More file types to list
2:\ Single file search only.
3:\ Removed the local computer button
4:\ Add a clear button
5:\ Layout changed

QUOTE
CODE
<TITLE>Gunsmokingman Multi Editor</TITLE>
<HTA:APPLICATION ID='Gsm_ME'
Scroll='No'
SCROLLFLAT ='No'
SingleInstance='Yes'
SysMenu='Yes'
ShowInTaskBar='No'
MaximizeButton='No'
MinimizeButton='Yes'
Border='Thin'
BORDERSTYLE ='complex'
INNERBORDER ='Yes'
Caption='Yes'
WindowState='Normal'
APPLICATIONNAME='Gsm_ME'
Icon='%SystemRoot%\explorer.exe'>
<STYLE Type="text/css">
Body
{
Font-Size:8.05pt;
Font-Weight:Bold;
Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;
Color:#001254;
BackGround-Color:Transparent;
Filter:progid:DXImageTransform.Microsoft.Gradient
(StartColorStr='#fdf7f1',endColorStr='#d1cbc5');
Margin-Top:1;
Margin-Bottom:1;
Margin-Left:4;
Margin-Right:4;
Padding-Top:1;
Padding-Bottom:1;
Padding-Left:4;
Padding-Right:4;
Text-Align:Center;
Vertical-Align:Top;
Border-Top:2px Solid #a6a29e;
Border-Bottom:3px Solid #cbc7c3;
Border-Left:2px Solid #b2aeaa;
Border-Right:3px Solid #bcb8b4;
}
BUTTON
{
Width:101pt;
Height:13pt;
Cursor:Hand;
Font-Size:8.05pt;
Font-Weight:Bold;
Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;
Color:#001142;
Filter:progid:DXImageTransform.Microsoft.Gradient
(StartColorSTR='#bbddff',endColorSTR='#224488');
Padding-Top:1;
Padding-Bottom:2;
Margin-Left:1pt;
Margin-Right:1pt;
Border-Top:1px TransParent;
Border-Bottom:2px TransParent;
Border-Left:1px TransParent;
Border-Right:2px TransParent;
}
TD
{
Font-Size:7.95pt;
Font-Weight:Bold;
Color:#5E5E5E;
Text-Align:Center;
Margin-Top:1;
Margin-Bottom:1;
}
TD.T1
{
Width:39;
Font-Size:7.95pt;
Font-Weight:Bold;
Color:#5E5E5E;
Text-Align:Left;
Margin-Top:1;
Margin-Bottom:1;
}
</STYLE>
<script LANGUAGE="VBScript">
'-> Resize And Move Window
Dim Wth :Wth = int(800)
Dim Hht :Hht = int(625)
window.ResizeTo Wth, Hht
MoveTo ((Screen.Width / 2) - (Wth / 2)),((Screen.Height / 2) - (Hht / 2))

Const WINDOW_HANDLE = 0 ,OPTIONS = 0,MY_COMPUTER = &H11&
Dim Computer :Computer = "."
Dim Shell :Set Shell = CreateObject("Shell.Application")
Dim Act :Set Act = CreateObject("Wscript.Shell")
Dim Fso :Set Fso = CreateObject("Scripting.FileSystemObject")
Dim Wmi :Set Wmi = GetObject("winmgmts:\\" & Computer & "\root\cimv2")
Dim Cmd1, colSubfolders, Folder, FolderItem, ObjPath, strFolderName, Time1
Dim Msg1 :Msg1="Select The File Type That You Want To List."
Dim Msg2 :Msg2="<FONT Style='Color:#Ad1111;Margin-Top:3;'>" & _
"This may appear to not be responding, while the query is active!</FONT>"
Function Window_onLoad()
self.Focus()
Txt1.innerHTML=Msg1
End Function
'-> File Type Selection
Dim F_Type
Function CheckFileType()
If FType(0).checked Then
F_Type = ".cmd"
ElseIf FType(1).checked Then
F_Type = ".hta"
ElseIf FType(2).checked Then
F_Type = ".inf"
ElseIf FType(3).checked Then
F_Type = ".ini"
ElseIf FType(4).checked Then
F_Type = ".reg"
ElseIf FType(5).checked Then
F_Type = ".vbs"
ElseIf FType(6).checked Then
F_Type = ".txt"
Else
F_Type = "Nothing Selected"
End If
Exit Function
End Function
'-> No File Selected Error Message
Function NoFileSelected()
alert(" There Was Not A File Type Selected" & vbcrlf & _
"Select A File Type To Search For.")
Exit Function
End Function
'-> Clear Left Side Text List
Function UpdateList()
For Each ObjList In TxtFile.Options :ObjList.RemoveNode :Next
Path.innerHTML = ""
Exit Function
End Function
'-> Save Any Changes
Function SaveMyChanges()
Dim TS
If Contents.Value = "" Then
Else
Set Ts = Fso.CreateTextFile(TxtFile.Value)
TS.WriteLine Contents.Value
Ts.Close
End If
Exit Function
End Function
'-> Select From List And Fill Main Text Area
Function ReadFile()
On Error Resume Next
Set objFile = Fso.OpenTextFile(TxtFile.Value)
strContents = objFile.ReadAll
objFile.Close
Contents.Value = strContents
Path.innerHTML=TxtFile.Value
Exit Function
End Function
</SCRIPT>
<BODY>Gunsmokingman Multi Editor
<DIV ID='Txt1' Style='Color:;Margin-Top:3;'> </DIV>
<TABLE width="50%">
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Cmd</TD>
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Hta</TD>
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Inf</TD>
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Ini</TD>
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Reg</TD>
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Vbs</TD>
<TD STYLE='Width:14;'><INPUT Type='Radio' Name='FType'></TD><TD Class='T1'>Txt</TD>
</TABLE>
<TABLE width="100%" Style='Margin-Top:3px;Margin-Bottom:3px;' Border='1'>
<TR>
<TD width="25%" valign="top">
<select size="32" name="TxtFile" onChange="ReadFile()"
style="Width:100%;Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;Font-Size:7.95pt;Font-Weight:Bold;">
</select>
</TD>
<TD width="75%" valign="top">
<textarea name="Contents" rows="32" cols="100"
Style='Width:100%;Font-Family:Arial,Tahoma,Comic Sans MS,Segoe Ui;Font-Size:7.95pt;Font-Weight:Bold;'
OnChange='SaveMyChanges()'></textarea>
</TD>
</TR>
</TABLE>
<SPAN ID='Path' > </SPAN>
<!-- Button Table Start -->
<TABLE Style='Margin-Top:3px;Margin-Bottom:3px;' Border='1' Align='Center'>
<!-- Single Folder Querry Start -->
<script LANGUAGE="VBScript">
Function DirectoryList()
CheckFileType()
If instr(F_Type,"Nothing Selected") Then
NoFileSelected()
Else
Set Folder = Shell.BrowseForFolder(0, "Select a folder:", 0, MY_COMPUTER)
If Folder Is Nothing Then
Exit Function
Else
Contents.Value=""
Txt1.innerHTML=Msg2
Time1 = window.setTimeout("Querry1", 2000, "VBScript")
End If
End If
Exit Function
End Function
Function Querry1()
Set FolderItem = Folder.Self
ObjPath = FolderItem.Path
UpdateList()
Set colFiles = Wmi.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & ObjPath & "'} " _
& "Where ResultClass = CIM_DataFile ")
For Each objFile In colFiles
If Right(Instr(objFile.Name,F_Type),4) Then
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
End If
Next
C1=0
Txt1.innerHTML=Msg1
Time1 = window.clearTimeout()
Exit Function
End Function
</SCRIPT>
<TD><BUTTON OnClick='DirectoryList()'>Folder</BUTTON></TD>
<!-- Single Folder Querry End -->
<!-- Directory Folder Querry Start -->
<script LANGUAGE="VBScript">
'-> Folder And Sub Folders
Function FolderSubFolderListAll()
CheckFileType()
If instr(F_Type,"Nothing Selected") Then
NoFileSelected()
Else
Set Folder = Shell.BrowseForFolder(0, "Select a folder:", 0, MY_COMPUTER)
If Folder Is Nothing Then
Exit Function
Else
Contents.Value=""
Txt1.innerHTML=Msg2
Time1 = window.setTimeout("Querry2", 2000, "VBScript")
End If
End If
Exit Function
End Function
Function Querry2()
Set FolderItem = Folder.Self
strFolderName = FolderItem.Path
UpdateList()
Set colSubfolders = Wmi.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory ResultRole = PartComponent")
Set colFiles = Wmi.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & strFolderName & "'} Where " _
& "ResultClass = CIM_DataFile")
For Each objFile in colFiles
If Right(Instr(objFile.Name,F_Type),4) Then
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
End If
Next
For Each objFolder In colSubfolders :GetSubFolders strFolderName :Next
C1=0
Txt1.innerHTML=Msg1
Time1 = window.clearTimeout()
Exit Function
End Function
'-> Sub Folders
Sub GetSubFolders(strFolderName)
On Error Resume Next
Set colSubfolders2 = Wmi.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent")
For Each objFolder2 in colSubfolders2
strFolderName = objFolder2.Name
Set colFiles = Wmi.ExecQuery _
("ASSOCIATORS OF {Win32_Directory.Name='" & strFolderName & "'} Where " _
& "ResultClass = CIM_DataFile")
For Each objFile in colFiles
If Right(Instr(objFile.Name,F_Type),4) Then
C1 = C1 + 1
Set objOption = Document.createElement("OPTION")
objOption.Text = objFile.FileName
objOption.Value = objFile.Name
If C1 Mod 2 Then
objOption.style.backgroundcolor = "#C9C9C9"
objOption.style.color = "#3A3A3A"
Else
objOption.style.backgroundcolor = "#E9E9E9"
objOption.style.color = "#235779"
End If
TxtFile.Add(objOption)
End If
Next
GetSubFolders strFolderName
Next
End Sub
</SCRIPT>
<TD><BUTTON OnClick='FolderSubFolderListAll()'>Directory</BUTTON></TD>
<!-- Directory Folder Querry End -->
<!-- Clear Select And Path Start -->
<script LANGUAGE="VBScript">
Function ClearReset()
UpdateList()
Contents.Value = ""
Path.innerHTML = ""
Exit Function
End Function
</SCRIPT>
<TD><BUTTON OnClick='ClearReset()'>Clear</BUTTON></TD>
<!-- Clear Select And Path End -->
<!-- Run Selected Item Start -->
<script LANGUAGE="VBScript">
Function RunCmdPromt()
If TxtFile.Value = "" Then
alert("There was nothing to run")
Else
If FType(0).checked Then Cmd1 = "cmd.exe /c " & Chr(34) & TxtFile.Value & Chr(34)
If FType(1).checked Then Cmd1 = "mshta.exe " & Chr(34) & TxtFile.Value & Chr(34)
If FType(5).checked Then Cmd1 = "cscript.exe " & Chr(34) & TxtFile.Value & Chr(34)
If FType(2).checked Or FType(3).checked Or FType(4).checked Or FType(6).checked Then
Cmd1 = "notepad.exe " & Chr(34) & TxtFile.Value & Chr(34)
End If
Act.Run(Cmd1),1,True
End If
Exit Function
End Function
</SCRIPT>
<TD><BUTTON OnClick='RunCmdPromt()'>Process</BUTTON></TD>
<!-- Run Selected Item End -->
</TABLE>
<!-- Button Table End -->
</BODY>
delei
Hi friends, I didn't write very well in english but I want know if you can help me to solve a problem. I found your script and think it very intrusting.
I need a simplified version of this script with the following modifications:

* Open only ".txt" files - it don't need to have the radio buttons. Only "txt" as default.

* List automatically the files in a default folder, so it have no need to exist the buttons "folder", "directory" or "process".

* The Delete button must remove from list and delete the files from folder.

If you could help me, I will be gratefull.

Follow attached a simple preview to show waht I need.


Thank your for the attention.
Google Internet Forums Unattended CD/DVD Guide
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.