In my current job, we occasionally have a few large hiring classes through out the year. To make it easier for the new hires, I decided to make a Printer Install Tool which will allow anyone to install any of the printers on the floor. This way I am not being requested for a simple task like this. Follow the steps included in this post and you will be able to do the same!
You will need to create the following 4 files:
Printer Install.hta(This is your main file)
printers.txt (This will contain the list of printers that are installed on your print server)
install.bat (This is your batch file that installs the selected printer)
empty.txt (This will have an error message if the HTA can’t load your printer list, or if your printer list is empty)
Below you will find what is inside the 4 files.
Printer Installation HTA Source Code:
<html> <head> <title>Printer Install</title> <meta http-equiv="X-UA-Compatible" content="IE=8"/> <HTA:APPLICATION ID="objHTA" APPLICATIONNAME="Printer Install" BORDER="none" INNERBORDER="no" SCROLL="none" SELECTION="no" CAPTION="no" SYSMENU="no" WINDOWSTATE="normal" > </head> <STYLE> body { margin:0px; padding:0px; } .content { padding: 60px 10px 10px 10px; } .header { padding-top:10px; color:#222; font:25px Calibri; font-weight:bold; margin:0px; } .notes { margin:0px; padding:0px } .top{ background-color:#1c2070; height:60px; top:0px; right:0px; position: fixed; width:100%; } .bottom{ background-color:#1c2070; height:5px; bottom:0px; position: fixed; width:100%; left:0px } #left, #right { background: #1c2070; position: fixed; top: 0; bottom: 0; width: 5px; } #left { left: 0; } #right { right: 0; } .logo { float:left; } .logo img { padding-left:5px; position:absolute; bottom:5px; } .exit { color:#fff; font:25px Calibri; float:right; padding-right:10px; padding-top:10px; } .exit img { padding-right:10px; padding-top:10px; } </style> <script language="VBScript"> On Error Resume Next Sub Window_Onload window.resizeTo 400,200 strComputer = "." Set objWMIService = GetObject("Winmgmts:\\" &amp;amp; strComputer &amp;amp; "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor") For Each objItem in colItems intHorizontal = objItem.ScreenWidth intVertical = objItem.ScreenHeight Next intLeft = (intHorizontal - 400) / 2 intTop = (intVertical - 200) / 2 window.moveTo intLeft, intTop LoadDropDown End Sub '* Load Dropdown Sub LoadDropDown Set objFS = CreateObject("Scripting.FileSystemObject") Set objFile = objFS.GetFile("&lt;span style="color: #ff0000;"&gt;\\YOUR DIRECTORY HERE\Printers.txt&lt;/span&gt;") '* Checking Size If objFile.Size &amp;gt; 0 Then '* Loading Printers Set objFile = objFS.OpenTextFile("&lt;span style="color: #ff0000;"&gt;\\YOUR DIRECTORY HERE\Printers.txt&lt;/span&gt;") arrApps = objFile.ReadAll objFile.Close arrApps = Split(arrApps,vbNewLine) For Each strNumber in arrApps Set objOption = Document.createElement("OPTION") objOption.Text = strNumber objOption.Value = strNumber Printers.Add(objOption) Next '* Profiles.txt is empty Else Set objFile = objFS.OpenTextFile("empty.txt") arrApps = objFile.ReadAll objFile.Close arrApps = Split(arrApps,vbNewLine) For Each strNumber in arrApps Set objOption = Document.createElement("OPTION") objOption.Text = strNumber objOption.Value = strNumber Printers.Add(objOption) Next End If End Sub Sub RunScript For iselect = 0 to (Printers.Options.Length - 1) If (Printers.Options(iselect).Selected) Then strPrinters = strPrinters &amp;amp; Printers.Options(iselect).Value &amp;amp; vbcrlf End If Next '* Confirming selected printer strAnswer = window.confirm("Are you sure you want to install " &amp;amp; chr(13) &amp;amp; chr(13) &amp;amp; strPrinters ) If strAnswer Then Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objSiteFile = objFSO.CreateTextFile("printer.txt", ForWriting, False) objSiteFile.Write "" objSiteFile.Write strPrinters objSiteFile.Writeline objSiteFile.Close Set oWSH = CreateObject("WScript.Shell") oWsh.Run "install.bat" else msgbox "Cancelled" strPrinters = "" objSiteFile.Close End if End Sub Sub exitScript window.close() End Sub Sub Pointer document.body.style.cursor = "hand" End Sub Sub DefaultCursor document.body.style.cursor = "default" End Sub </script> <body> <div class="top"> <div class="logo"></div> <div class="exit">Printer Install Tool <span ID="exit" onClick="exitScript" onmouseover="Pointer" onmouseout="DefaultCursor">X</span></div> </div> <div id="left"></div> <div id="right"></div> <div class="content"> <p class="header">Please select a printer below:</p> <br> <select name="Printers" color="#fff" class="auto-style38" ></select> <input id=runbutton0 class="auto-style5" type="button" value="Install Printer" name="ok_button" onClick="RunScript" style="width: 204px" > </div> <div class="bottom"></div> </body> </html>
Install.bat Source Code:
SET /p var=<printer.txt REM Add printer rundll32 printui.dll,PrintUIEntry /in /n\\KUORIMAGE02\%var%
Empty.txt Contents:
Please close and try again
Printers.txt Contents:
Printer -1
Printer-2
Printer-3
I’m sure there is probably a better way to do this but for now this will do. I hope this helps someone out there!
Matt
yo nice!
frankie falquez
love your site !! thank you for all your help
any update on this tool ??
Jose Espitia
Hi Frankie, I’m glad that you are enjoying the site. Unfortunately I haven’t done anything else with this tool in years. If there is enough demand for it.. I may convert the HTA to a Powershell GUI in the future.
frankie falquez
oh OK perfect thank you so much !