• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 279
  • Last Modified:

Getting Service Pack information with a hta

Hi guys hope you are all well.
Guys i have the following hta, which does work, but has a little problem that id love your help on.

When it loads, it loads without error. I click the button to run the query, and it runs successfully, but displays the output in a new window, and not on the same "screen" as the onload screen.

So, basically,

============================================= get_service_pack.hta

text text

<Ge3t Service Pack > button    <----- when i click this, the screen is wiped, and then i get the results,
When what i want is for the <Get Service Pack> button to remain there, with results underneath it.

Any help grealy appreciated.
============================== get_service_pack.hta
 
<html>
<!-------------------------------------------------------------------------
  Get the Service Pack of a list of systems from servfers.txt
---------------------------------------------------------------------------->
 
<head>
<title>Service Pack Information</title>
<HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="Service Pack Information"
    SINGLEINSTANCE="yes"
    NAVIGABLE="yes"
   >
 
<style type="text/css">
 
html {
font-family:arial;
font-size:smaller;
 
}
 
table {
border-collapse:collapse;
border:solid 1px black;
font-family:arial;
font-size:0.8em;
}
 
tr, td {
border:solid 1px black;
}
 
</style>
 
 
</head>
 
<body>
 
<p><h2 align=center><font color=red>Service Pack Information</font></h2>
<div align=right>S Test  04/05/2009</div><hr size=1>
This hta application uses VBScript and WMI to enumerate the service pack for systems in a text file.<p>
 
<script language="VBScript">
 
'This will open the current document for writing to:
 
 
Sub GetServicePack
 
'document.open
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
strComputersFile = "servers.txt"
Set objComputers = objFSO.OpenTextFile(strComputersFile, intForReading, False)
 
 
 
document.writeln "<center><table width='40%' border=1 bgcolor='white'><tr><td style='background:c0c0c0'>" & "<b>System</b>" & "</td><td style='background:c0c0c0'>" & "<b>Service 
 
Pack</b>" & "</td></tr>"
 
'document.writeln "<center><table border=1 bgcolor='c0c0c0'>"
 
While Not objComputers.AtEndOfStream
	strComputer =   objComputers.ReadLine
 
        'If you can connect to the machine, then get the Service pack:
        If Ping(strComputer) = True Then
 
        On Error Resume Next
                Set objWMIService = GetObject("winmgmts:" _
                & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
                If Err.Number = 0 Then On Error GoTo 0
 
                'Get Service Pack:
                '-----------------------------------------------------
                Set colSpack = objWMIService.ExecQuery _
                ("Select * from Win32_OperatingSystem")
 
                For Each objSpack in colSpack
                        strSpack = objSpack.ServicePackMajorVersion
                Next
 
 		document.writeln "<tr><td>" & strComputer & "</td><td>" & strSpack & "</td></tr>"
	Else
 
		document.writeln "<tr><td>" & strComputer & "</td><td style='background:black;'>" & "<font color='red'>Unreachable</font>" & "</td></tr>"
 
		'document.writeln strComputer & vbTab & vbTab & "Unreachable"
 
        End If
 
  
Wend
 
objComputers.Close
document.writeln "</table></center>"
 
document.close
 
End Sub
 
Function Ping(strComputer)
 Dim objShell, boolCode
 Set objShell = CreateObject("WScript.Shell")
 boolCode = objShell.Run("Ping -n 1 -w 300 " & strComputer, 0, True)
 If boolCode = 0 Then
  Ping = True
 Else
  Ping = False
 End If
End Function
 
 
</script>
 
 
<input id=getsp  class="button" type="button" value="Get Service Pack" name="getsp_button"  onClick="GetServicePack">
 
 
</body>
</html>

Open in new window

0
Simon336697
Asked:
Simon336697
  • 5
  • 3
1 Solution
 
yehudahaCommented:
hey

i'm not a hta expert but here a code from : advance vbscript for system adminstrator
<html>
 
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Computer Inventory Tool</title>
<script language="vbscript">
 
Sub btnOK_onClick
    Dim arrComputers, strComputer, objWMIService, colItems, objItem, strHTML
    
    'get the computer names into a string
    'and split it into an array
    arrComputers = Split(txtComputers.InnerText,vbcrlf)
    
    'create the starting HTML
    strHTML = "<table border=1>" & VbCrLf
    strHTML = strHTML & "<tr>" & VbCrLf
    strHTML = strHTML & "<td>Computer</td>" & VbCrLf
   If chkBuild.value = "ON" Then
     strHTML = strHTML & "<td>Build</td>" & VbCrLf
   End If
   If chkServicePack.value = "ON" Then
     strHTML = strHTML & "<td>Service Pack</td>" & VbCrLf
   End If
   If chkVersion.value = "ON" Then
     strHTML = strHTML & "<td>Version</td>" & VbCrLf
   End If
   If chkSerialNumber.value = "ON" Then
     strHTML = strHTML & "<td>Serial Number</td>" & VbCrLf
   End If
    
    'read through the array
    For Each strComputer In arrComputers
    
     'add a table row to the HTML
     strHTML = strHTML & "<tr>" & VbCrLf
         
     'query the computer
     On Error Resume Next
     Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
      "\root\cimv2")
     If Err = 0 Then
      'no error connecting - query the info
      Set colItems = objWMIService.ExecQuery("SELECT * " & _
       "FROM Win32_OperatingSystem")
       
      'build the output HTML cells
      For Each objItem In colItems
       strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
       If chkBuild.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.BuildNumber & "</td>" & VbCrLf
       End If
       If chkServicePack.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.ServicePackMajorVersion & "</td>" & VbCrLf
       End If
       If chkVersion.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.Version & "</td>" & VbCrLf
       End If
       If chkSerialNumber.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.SerialNumber & "</td>" & VbCrLf
       End If
      Next
      
      'finish the HTML row
      strHTML = strHTML & "</tr>"
     Else
      'error connecting
      strHTML = strHTML & "<tr>" & VbCrLf
      strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
      strHTML = strHTML & "<td>?</td>" & VbCrLf
      strHTML = strHTML & "</tr>" & VbCrLf
     End If
     On Error GoTo 0
     
    Next
    
    'close the table
    strHTML = strHTML & "</table>" & VbCrLf
    
    'display the table
    DisplayOutputInIE(strHTML)
End Sub
 
Sub DisplayOutputInIE(strHTML)
 Dim objIE
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Navigate "about:blank"
 objIE.Document.body.innerhtml = strHTML
 objIE.Visible = True
End Sub
 
Sub btnLoadFromFile_onClick()
    Dim objFSO, objTS, strFile
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    strFile = InputBox("Path and filename to load?")
    If objFSO.FileExists(strFile) Then
        Set objTS = objFSO.OpenTextFile(strFile)
        txtComputers.innerText = objTS.ReadAll
        objTS.Close 
    Else
        MsgBox("File does not exist.")
    End If
End Sub
 
</script>
<hta:application>
</head>
 
<body>
 
<p align="center"><b>Computer Inventory Tool</b></p>
<p align="left">Inventory the following computers (one per line):<br>
<textarea id="txtComputers" rows="4" name="txtComputers" cols="40"></textarea><input type="button" value="Load From File" id="btnLoadFromFile" name="btnLoadFromFile"></p>
<p align="left">Inventory this information:<br>
<input type="checkbox" id="chkServicePack" name="chkServicePack" value="ON">Service pack major 
version<br>
<input type="checkbox" id="chkBuild" name="chkBuild" value="ON">Windows build<br>
<input type="checkbox" id="chkVersion" name="chkVersion" value="ON">Version<br>
<input type="checkbox" id="chkSerialNumber" name="chkSerialNumber" value="ON">Serial number</p>
<p align="left"><input id="btnOK" type="button" value="OK" name="btnOK"></p>
 
</body>
 
</html>

Open in new window

0
 
Simon336697Author Commented:
Hi yehudaha,
Mate thanks so much for that. That gives me something to work with :>)
yehudaha,
Im not sure if you can help on this, but that code you posted, when I run it, it returns the results in a different window. Is it possible to return those results in the SAME window?
0
 
yehudahaCommented:
i hope this will do it  
<!--Script Settings
<ScriptSettings xmlns="http://tempuri.org/ScriptSettings.xsd">
  <ScriptPackager>
    <process />
    <arguments />
    <extractdir>%TEMP%</extractdir>
    <files />
    <usedefaulticon>true</usedefaulticon>
    <showinsystray>false</showinsystray>
    <altcreds>false</altcreds>
    <efs>true</efs>
    <ntfs>true</ntfs>
    <local>false</local>
    <abortonfail>true</abortonfail>
    <product />
    <version>1.0.0.1</version>
    <versionstring />
    <comments />
    <includeinterpreter>false</includeinterpreter>
    <forcecomregistration>false</forcecomregistration>
    <consolemode>false</consolemode>
    <EnableChangelog>false</EnableChangelog>
    <AutoBackup>false</AutoBackup>
    <snapinforce>false</snapinforce>
    <snapinshowprogress>false</snapinshowprogress>
    <snapinautoadd>0</snapinautoadd>
    <snapinpermanentpath />
  </ScriptPackager>
</ScriptSettings>
endregion-->
 
<html>
 
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Computer Inventory Tool</title>
<script language="vbscript">
 
Sub btnOK_onClick
    Dim arrComputers, strComputer, objWMIService, colItems, objItem, strHTML
    
    'get the computer names into a string
    'and split it into an array
    arrComputers = Split(txtComputers.InnerText,vbcrlf)
    
    'create the starting HTML
    strHTML = "<table border=1>" & VbCrLf
    strHTML = strHTML & "<tr>" & VbCrLf
    strHTML = strHTML & "<td>Computer</td>" & VbCrLf
   If chkBuild.value = "ON" Then
     strHTML = strHTML & "<td>Build</td>" & VbCrLf
   End If
   If chkServicePack.value = "ON" Then
     strHTML = strHTML & "<td>Service Pack</td>" & VbCrLf
   End If
   If chkVersion.value = "ON" Then
     strHTML = strHTML & "<td>Version</td>" & VbCrLf
   End If
   If chkSerialNumber.value = "ON" Then
     strHTML = strHTML & "<td>Serial Number</td>" & VbCrLf
   End If
    
    'read through the array
    For Each strComputer In arrComputers
    
     'add a table row to the HTML
     strHTML = strHTML & "<tr>" & VbCrLf
         
     'query the computer
     On Error Resume Next
     Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
      "\root\cimv2")
     If Err = 0 Then
      'no error connecting - query the info
      Set colItems = objWMIService.ExecQuery("SELECT * " & _
       "FROM Win32_OperatingSystem")
       
      'build the output HTML cells
      For Each objItem In colItems
       strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
       If chkBuild.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.BuildNumber & "</td>" & VbCrLf
       End If
       If chkServicePack.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.ServicePackMajorVersion & "</td>" & VbCrLf
       End If
       If chkVersion.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.Version & "</td>" & VbCrLf
       End If
       If chkSerialNumber.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.SerialNumber & "</td>" & VbCrLf
       End If
      Next
      
      'finish the HTML row
      strHTML = strHTML & "</tr>"
     Else
      'error connecting
      strHTML = strHTML & "<tr>" & VbCrLf
      strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
      strHTML = strHTML & "<td>?</td>" & VbCrLf
      strHTML = strHTML & "</tr>" & VbCrLf
     End If
     On Error GoTo 0
     
    Next
    
    'close the table
    strHTML = strHTML & "</table>" & VbCrLf
    
    'display the table
    'DisplayOutputInIE(strHTML)
	 DataArea.InnerHTML = strHTML
End Sub
 
Sub DisplayOutputInIE(strHTML)
 Dim objIE
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Navigate "about:blank"
 objIE.Document.body.innerhtml = strHTML
 objIE.Visible = True
End Sub
 
Sub btnLoadFromFile_onClick()
    Dim objFSO, objTS, strFile
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    strFile = InputBox("Path and filename to load?")
    If objFSO.FileExists(strFile) Then
        Set objTS = objFSO.OpenTextFile(strFile)
        txtComputers.innerText = objTS.ReadAll
        objTS.Close 
    Else
        MsgBox("File does not exist.")
    End If
End Sub
 
</script>
<hta:application>
</head>
 
<body>
 
<p align="center"><b>Computer Inventory Tool</b></p>
<p align="left">Inventory the following computers (one per line):<br>
<textarea id="txtComputers" rows="4" name="txtComputers" cols="40"></textarea><input type="button" value="Load From File" id="btnLoadFromFile" name="btnLoadFromFile"></p>
<p align="left">Inventory this information:<br>
<input type="checkbox" id="chkServicePack" name="chkServicePack" value="ON">Service pack major 
version<br>
<input type="checkbox" id="chkBuild" name="chkBuild" value="ON">Windows build<br>
<input type="checkbox" id="chkVersion" name="chkVersion" value="ON">Version<br>
<input type="checkbox" id="chkSerialNumber" name="chkSerialNumber" value="ON">Serial number</p>
<p align="left"><input id="btnOK" type="button" value="OK" name="btnOK"></p>
<span id=DataArea></span>
</body>
 
</html>

Open in new window

0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
yehudahaCommented:
sorry this one
<html>
 
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Computer Inventory Tool</title>
<script language="vbscript">
 
Sub btnOK_onClick
    Dim arrComputers, strComputer, objWMIService, colItems, objItem, strHTML
    
    'get the computer names into a string
    'and split it into an array
    arrComputers = Split(txtComputers.InnerText,vbcrlf)
    
    'create the starting HTML
    strHTML = "<table border=1>" & VbCrLf
    strHTML = strHTML & "<tr>" & VbCrLf
    strHTML = strHTML & "<td>Computer</td>" & VbCrLf
   If chkBuild.value = "ON" Then
     strHTML = strHTML & "<td>Build</td>" & VbCrLf
   End If
   If chkServicePack.value = "ON" Then
     strHTML = strHTML & "<td>Service Pack</td>" & VbCrLf
   End If
   If chkVersion.value = "ON" Then
     strHTML = strHTML & "<td>Version</td>" & VbCrLf
   End If
   If chkSerialNumber.value = "ON" Then
     strHTML = strHTML & "<td>Serial Number</td>" & VbCrLf
   End If
    
    'read through the array
    For Each strComputer In arrComputers
    
     'add a table row to the HTML
     strHTML = strHTML & "<tr>" & VbCrLf
         
     'query the computer
     On Error Resume Next
     Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
      "\root\cimv2")
     If Err = 0 Then
      'no error connecting - query the info
      Set colItems = objWMIService.ExecQuery("SELECT * " & _
       "FROM Win32_OperatingSystem")
       
      'build the output HTML cells
      For Each objItem In colItems
       strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
       If chkBuild.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.BuildNumber & "</td>" & VbCrLf
       End If
       If chkServicePack.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.ServicePackMajorVersion & "</td>" & VbCrLf
       End If
       If chkVersion.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.Version & "</td>" & VbCrLf
       End If
       If chkSerialNumber.value = "ON" Then
         strHTML = strHTML & "<td>" & objItem.SerialNumber & "</td>" & VbCrLf
       End If
      Next
      
      'finish the HTML row
      strHTML = strHTML & "</tr>"
     Else
      'error connecting
      strHTML = strHTML & "<tr>" & VbCrLf
      strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
      strHTML = strHTML & "<td>?</td>" & VbCrLf
      strHTML = strHTML & "</tr>" & VbCrLf
     End If
     On Error GoTo 0
     
    Next
    
    'close the table
    strHTML = strHTML & "</table>" & VbCrLf
    
    'display the table
    'DisplayOutputInIE(strHTML)
	 DataArea.InnerHTML = strHTML
End Sub
 
Sub DisplayOutputInIE(strHTML)
 Dim objIE
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Navigate "about:blank"
 objIE.Document.body.innerhtml = strHTML
 objIE.Visible = True
End Sub
 
Sub btnLoadFromFile_onClick()
    Dim objFSO, objTS, strFile
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    strFile = InputBox("Path and filename to load?")
    If objFSO.FileExists(strFile) Then
        Set objTS = objFSO.OpenTextFile(strFile)
        txtComputers.innerText = objTS.ReadAll
        objTS.Close 
    Else
        MsgBox("File does not exist.")
    End If
End Sub
 
</script>
<hta:application>
</head>
 
<body>
 
<p align="center"><b>Computer Inventory Tool</b></p>
<p align="left">Inventory the following computers (one per line):<br>
<textarea id="txtComputers" rows="4" name="txtComputers" cols="40"></textarea><input type="button" value="Load From File" id="btnLoadFromFile" name="btnLoadFromFile"></p>
<p align="left">Inventory this information:<br>
<input type="checkbox" id="chkServicePack" name="chkServicePack" value="ON">Service pack major 
version<br>
<input type="checkbox" id="chkBuild" name="chkBuild" value="ON">Windows build<br>
<input type="checkbox" id="chkVersion" name="chkVersion" value="ON">Version<br>
<input type="checkbox" id="chkSerialNumber" name="chkSerialNumber" value="ON">Serial number</p>
<p align="left"><input id="btnOK" type="button" value="OK" name="btnOK"></p>
<span id=DataArea></span>
</body>
 
</html>

Open in new window

0
 
Simon336697Author Commented:
hi yehudaha,
Thank you so much.
That does work yehudaha with just one slight hiccup.
If no checkboxes are checked, it returns information just like you checked all 4 checkboxes.
The other thing, is that if you only select a few of the checkboxes, it does not filter/'retrieve that information only.
0
 
yehudahaCommented:
try this
<html>
 
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Computer Inventory Tool</title>
<script language="vbscript">
 
Sub btnOK_onClick
    Dim arrComputers, strComputer, objWMIService, colItems, objItem, strHTML
    
    'get the computer names into a string
    'and split it into an array
    arrComputers = Split(txtComputers.InnerText,vbcrlf)
    
    'create the starting HTML
    strHTML = "<table border=1>" & VbCrLf
    strHTML = strHTML & "<tr>" & VbCrLf
    strHTML = strHTML & "<td>Computer</td>" & VbCrLf
   If chkBuild.Checked Then
     strHTML = strHTML & "<td>Build</td>" & VbCrLf
   End If
   If chkServicePack.Checked Then
     strHTML = strHTML & "<td>Service Pack</td>" & VbCrLf
   End If
   If chkVersion.Checked Then
     strHTML = strHTML & "<td>Version</td>" & VbCrLf
   End If
   If chkSerialNumber.Checked Then
     strHTML = strHTML & "<td>Serial Number</td>" & VbCrLf
   End If
    
    'read through the array
    For Each strComputer In arrComputers
    
     'add a table row to the HTML
     strHTML = strHTML & "<tr>" & VbCrLf
         
     'query the computer
     On Error Resume Next
     Set objWMIService = GetObject("winmgmts:\\" & strComputer & _
      "\root\cimv2")
     If Err = 0 Then
      'no error connecting - query the info
      Set colItems = objWMIService.ExecQuery("SELECT * " & _
       "FROM Win32_OperatingSystem")
       
      'build the output HTML cells
      For Each objItem In colItems
       strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
       If chkBuild.Checked Then
         strHTML = strHTML & "<td>" & objItem.BuildNumber & "</td>" & VbCrLf
       End If
       If chkServicePack.Checked Then
         strHTML = strHTML & "<td>" & objItem.ServicePackMajorVersion & "</td>" & VbCrLf
       End If
       If chkVersion.Checked Then
         strHTML = strHTML & "<td>" & objItem.Version & "</td>" & VbCrLf
       End If
       If chkSerialNumber.Checked Then
         strHTML = strHTML & "<td>" & objItem.SerialNumber & "</td>" & VbCrLf
       End If
      Next
      
      'finish the HTML row
      strHTML = strHTML & "</tr>"
     Else
      'error connecting
      strHTML = strHTML & "<tr>" & VbCrLf
      strHTML = strHTML & "<td>" & strComputer & "</td>" & VbCrLf
      strHTML = strHTML & "<td>?</td>" & VbCrLf
      strHTML = strHTML & "</tr>" & VbCrLf
     End If
     On Error GoTo 0
     
    Next
    
    'close the table
    strHTML = strHTML & "</table>" & VbCrLf
    
    'display the table
    'DisplayOutputInIE(strHTML)
	 DataArea.InnerHTML = strHTML
End Sub
 
Sub DisplayOutputInIE(strHTML)
 Dim objIE
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Navigate "about:blank"
 objIE.Document.body.innerhtml = strHTML
 objIE.Visible = True
End Sub
 
Sub btnLoadFromFile_onClick()
    Dim objFSO, objTS, strFile
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    strFile = InputBox("Path and filename to load?")
    If objFSO.FileExists(strFile) Then
        Set objTS = objFSO.OpenTextFile(strFile)
        txtComputers.innerText = objTS.ReadAll
        objTS.Close 
    Else
        MsgBox("File does not exist.")
    End If
End Sub
 
</script>
<hta:application>
</head>
 
<body>
 
<p align="center"><b>Computer Inventory Tool</b></p>
<p align="left">Inventory the following computers (one per line):<br>
<textarea id="txtComputers" rows="4" name="txtComputers" cols="40"></textarea><input type="button" value="Load From File" id="btnLoadFromFile" name="btnLoadFromFile"></p>
<p align="left">Inventory this information:<br>
<input type="checkbox" id="chkServicePack" name="chkServicePack" value="ON">Service pack major 
version<br>
<input type="checkbox" id="chkBuild" name="chkBuild" value="ON">Windows build<br>
<input type="checkbox" id="chkVersion" name="chkVersion" value="ON">Version<br>
<input type="checkbox" id="chkSerialNumber" name="chkSerialNumber" value="ON">Serial number</p>
<p align="left"><input id="btnOK" type="button" value="OK" name="btnOK"></p>
<span id=DataArea></span>
</body>
 
</html>

Open in new window

0
 
Simon336697Author Commented:
That is absolutely awesome yehudaha!
Mate brilliant!!
0
 
yehudahaCommented:
thank
glad to help
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now