Vaeb Posted October 17, 2007 Posted October 17, 2007 Hello everybody! I have a directory with shortcuts to printers inside. I need to install all of the printers automatic. Can any1 help me, please? I really need to do that. Greets Vaeb I <3 it:http://www.autoitscript.com/forum/index.php?showtopic=69912http://www.autoitscript.com/forum/index.php?showtopic=69914http://www.autoitscript.com/forum/index.php?showtopic=69911
Bert Posted October 17, 2007 Posted October 17, 2007 There are several options open to you. The first method is to use command line. Take a look at this site:http://www.robvanderwoude.com/2kprintcontrol.htmlA second option is you can use this script. It will work for a windows print server, not novell. It will install printers on a machine level, so no matter who logs in, they can print. You run it from the PC you want to install the printers.expandcollapse popup#include <GuiConstants.au3> #include <Process.au3> #include <Array.au3> $g_szVersion = "PrintInst.exe" If WinExists($g_szVersion) Then Exit Opt("TrayIconDebug", 1) ;debug is on Dim $hService, _ $data, _ $sPrinter, _ $sPrinterList, _ $font = "Comic Sans MS", _ $Input[12], $Combo[7], $radio[7], _ $check[11], $Button[6] Global Enum Step + 25 _ $CON_POS_1 = 25, _ $CON_POS_2, _ $CON_POS_3, _ $CON_POS_4, _ $CON_POS_5, _ $CON_POS_6, _ $CON_POS_7, _ $CON_POS_8, _ $CON_POS_9, _ $CON_POS_10, _ $CON_POS_11 GUICreate("", 600, 290, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) GUICtrlCreateLabel("\\", 20, 54, 10, 20) $iniread_1 = IniRead(@ScriptDir & "/npu.ini", "SERVER", "SERVER", "") $iniread_2 = IniRead(@ScriptDir & "/npu.ini", "Printers", "PLIST", "") iniwrite(@ScriptDir & "/npu.ini", "Printers", "LOCAL", "") $iniread_3 = IniRead(@ScriptDir & "/npu.ini", "Printers", "LOCAL", "") $LocalPrinters = StringSplit($iniread_3, "|") If $LocalPrinters[0] > 10 Then ReDim $LocalPrinters[11] EndIf $Input[1] = GUICtrlCreateInput($iniread_1, 35, 50, 100, 20) For $i = 2 To 11 $Input[$i] = GUICtrlCreateInput("", 270, Eval("CON_POS_" & $i - 1), 270, 21) If ($i - 1) <= $LocalPrinters[0]Then GUICtrlSetData(-1, $LocalPrinters[$i - 1]) EndIf Next For $i = 1 To 6 $Combo[$i] = GUICtrlCreateCombo("", 20, Eval("CON_POS_" & $i + 2), 170, 21) GUICtrlSetData(-1, $iniread_2) $radio[$i] = GUICtrlCreateRadio("", 210, Eval("CON_POS_" & $i + 2), 15, 21) Next For $i = 1 To 10 $check[$i] = GUICtrlCreateCheckbox("", 550, Eval("CON_POS_" & $i), 20, 20) Next GUICtrlCreateLabel("Currently install printers", 270, 3, 200, 21) GUICtrlCreateLabel("Delete", 550, 7, 100, 21) GUICtrlCreateGroup("Default", 200, 62, 50, 160) $Button[1] = GUICtrlCreateButton("Run", 20, 225, 35, 30) $Button[2] = GUICtrlCreateButton("Exit", 65, 225, 35, 30) $Button[3] = GUICtrlCreateButton("Find", 146, 50, 43, 20) $Button[4] = GUICtrlCreateButton("Find", 498, 3, 43, 20) $Button[5] = GUICtrlCreateButton("Restart Spooler", 110, 225, 80, 30) $Label_1 = GUICtrlCreateLabel(" Network Printer Utility" & @CRLF & "for Windows Print Servers", 20, 0, 240, 50) GUICtrlSetFont(-1, 10, 400, "", $font) $Label_2 = GUICtrlCreateLabel("2006 CTS Scripting Team", 40, 270, 130, 25) $_dummy = GUICtrlCreateDummy() GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE ExitLoop Case $Button[1] _Rprinter() _instprint() MsgBox(0, "", "Done!", 3) Case $Button[2] ExitLoop Case $Button[3] $data = GUICtrlRead($Input[1], 0) _netprint1() Case $Button[4] _getinstalledPrinters() Case $Button[5] _restart() Case Else ;;; EndSwitch WEnd Exit Func _netprint1() $hService = ObjGet("winmgmts:{impersonationLevel=impersonate}!" & "\\" & $data & "\root\cimv2") If @error Then MsgBox(48, "ERROR", "No Printers Found. Possible issues: " & @CRLF _ & "" & @CRLF _ & " 1. The Windows Print Server name has been entered in incorrectly." & @CRLF _ & " 2. You are trying to access a Novell Server. This utility does not support Novell Print Servers." & @CRLF _ & " 3. There are no printers shared on the Windows Print Server you selected.") Else _np2() EndIf EndFunc ;==>_netprint1 Func _np2() Local $i = 0 Local $sPrinters = "" Local $aArray[1] SplashTextOn("", "Gathering printers, please wait...", 150, 75) For $y = 1 To 6 GUICtrlSetData($Combo[$y], "") Next IniWrite(@ScriptDir & "/npu.ini", "Printers", "PLIST", "") $oPrinterList = $hService.ExecQuery ("Select * From Win32_Printer") For $oPrinter In $oPrinterList ReDim $aArray[$i + 1] $aArray[$i] = StringUpper($oPrinter.name) $i += 1 Next _ArraySort($aArray) For $i = 0 To UBound($aArray)-1 For $y = 1 To 6 GUICtrlSetData($Combo[$y], $aArray[$i]) Next Next $iElements = UBound($aArray) - 1 For $x = 0 To $iElements If $x = $iElements Then $sPrinters &= $aArray[$x] Else $sPrinters &= $aArray[$x] & "|" EndIf Next IniWrite(@ScriptDir & "/npu.ini", "Printers", "PLIST", $sPrinters) $dataget2 = GUICtrlRead($Input[1], 0) IniWrite(@ScriptDir & "/npu.ini", "SERVER", "SERVER", $dataget2) SplashTextOn("", "Select what printers you wish to install", 150, 75) Sleep(2000) SplashOff() EndFunc ;==>_np2 Func _instprint() Local $ComboGet[7], $RadioGet[7] SplashTextOn("", "Installing printer, please wait...", 150, 75) $InputGet = GUICtrlRead($Input[1], 0) For $i = 1 To 6 $ComboGet[$i] = GUICtrlRead($Combo[$i], 0) $RadioGet[$i] = GUICtrlRead($radio[$i], 0) Next For $i = 1 To 6 If $ComboGet[$i] <> "" Then RunWait(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /ga /c\\" & @ComputerName & " /n\\" & $InputGet & "\" & $ComboGet[$i]) EndIf Next _RunDOS("NET STOP spooler") _RunDOS("NET START spooler") sleep(10000) For $i = 1 To 6 If $RadioGet[$i] = 1 Then If $ComboGet[$i] <> "" Then RunWait(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n\\"&$iniread_1&"\"& $ComboGet[$i]) endif EndIf GUICtrlSetData($Combo[$i],"") GUICtrlSetState($radio[$i], $GUI_UNCHECKED) sleep(50) GUICtrlSetData($Combo[$i],$iniread_2) Next SplashOff() EndFunc ;==>_instprint func _restart() SplashTextOn("", "Stopping Print Spooler, please wait...", 150, 75) _RunDOS("NET STOP spooler") SplashOff() SplashTextOn("", "Starting Print Spooler, please wait...", 150, 75) _RunDOS("NET START spooler") SplashOff() EndFunc Func _getinstalledPrinters() SplashTextOn("", "Gathering installed printers, please wait...", 200, 75) IniWrite(@ScriptDir & "/npu.ini", "Printers", "LOCAL", "") $hService = ObjGet("winmgmts:{impersonationLevel=impersonate}!" & "\\" & @ComputerName & "\root\cimv2") $sPrinterList = $hService.ExecQuery ("Select * From Win32_Printer") ConsoleWrite('$sPrinterList.count = ' & $sPrinterList.count & @LF) For $sPrinter In $sPrinterList ConsoleWrite('$sPrinter.name = ' & $sPrinter.name & @LF) $rd3 = IniRead(@ScriptDir & "/npu.ini", "Printers", "LOCAL", "") IniWrite(@ScriptDir & "/npu.ini", "Printers", "LOCAL", $rd3 & $sPrinter.name & "|") Next $local = StringSplit(IniRead(@ScriptDir & "/npu.ini", "Printers", "LOCAL", ""), "|") If UBound($local) < 11 Then ReDim $local[11] For $i = 1 To 10 GUICtrlSetData($Input[$i + 1], $local[$i]) Next SplashOff() EndFunc ;==>_getinstalledPrinters Func _Rprinter() Local $InputGet[11] For $i = 2 To 11 $InputGet[$i - 1] = GUICtrlRead($Input[$i]) Next For $i = 1 To 10 If GUICtrlRead($check[$i]) = 1 Then SplashTextOn("", "Removing printer, please wait...", 150, 50) GUICtrlSetState($check[$i], $GUI_UNCHECKED) sleep(1000) If $InputGet[$i] <> "" Then $str = StringLeft($InputGet[$i], 2) If $str = "\\" Then RunWait(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /gd /dn /n /c\\" & @ComputerName & " /n" & $InputGet[$i]) ;RunWait(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /gd /q /c\\" & @ComputerName & " /n" & $InputGet[$i]) ;mine original ;RunWait(@ComSpec & ' /c RUNDLL32 PRINTUI.DLL,PrintUIEntry /gd /dn /q /n "' & $ret & '"', '', @SW_HIDE) ;danny35 GUICtrlSetData($InputGet[$i], "") Else RunWait(@SystemDir & '\RUNDLL32 PRINTUI.DLL,PrintUIEntry /dl /q /n "' & $InputGet[$i] & '" /c\\' & @ComputerName) EndIf EndIf EndIf Next EndFunc ;==>_Rprinter ;#cs - printer install ;adds a printer ;Run(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /ga /c\\" &@ComputerName& " /n\\va017f1a\19_4200_82.248_PCL") ;&&&& ;deletes a printer ;Run(@SystemDir & "\RUNDLL32 PRINTUI.DLL,PrintUIEntry /gd /c\\" [email="&@ComputerName"]&@ComputerName[/email]& " /n\\va017f1a\19_4200_82.248_PCL") ;_rundos("NET STOP spooler") ;_rundos("NET START spooler") ; #ce The Vollatran project My blog: http://www.vollysinterestingshit.com/
Vaeb Posted October 17, 2007 Author Posted October 17, 2007 Maybe you didn't really understand what i mean. But i found a way, by searching the forum. I have a new problem: I definied the var "$n". Unfortunatly it show me this error when i start it: CODEC:\Documents and Settings\censored\Desktop\Printer\Test.au3(116,83) : WARNING: $n: possibly used before declaration. $FileList = _FileListToArray("\\localswissca\swroot\Group\Public\Printers\" & $n & ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ Here is my Script: expandcollapse popup#include <GUIConstants.au3> #include <File.au3> #Include <Array.au3> Opt("GUIOnEventMode", 1) $Gui1 = GUICreate("Stockwerk", "701", "661") GUISetOnEvent($GUI_EVENT_CLOSE, "Exit2") GUICtrlCreateButton("Obergeschoss 1", "50", "50") GUICtrlSetOnEvent(-1, "Og1") GUICtrlCreateButton("Obergeschoss 2", "50", "150") GUICtrlSetOnEvent(-1, "Og2") GUICtrlCreateButton("Obergeschoss 3", "50", "250") GUICtrlSetOnEvent(-1, "Og3") GUICtrlCreateButton("Obergeschoss 4", "50", "350") GUICtrlSetOnEvent(-1, "Og4") GUICtrlCreateButton("Obergeschoss 5", "50", "450") GUICtrlSetOnEvent(-1, "Og5") GUICtrlCreateButton("Obergeschoss 6", "50", "550") GUICtrlSetOnEvent(-1, "Og6") $Exit = GUICtrlCreateMenu("Beenden") GUICtrlCreateMenuitem("Exit", $Exit) GUICtrlSetOnEvent(-1, "ExitMenu") GUISetState(@SW_SHOW, $Gui1) $msgn = "ERROR!!!!!!! " $Gui2 = GUICreate("Ort", "701", "661") GUISetOnEvent($GUI_EVENT_CLOSE, "Exit2") $Bahnhofplatz = GUICtrlCreateButton("Censored", "20", "200") GUICtrlSetOnEvent(-1, "Censored") $Bahnhofquai = GUICtrlCreateButton("Censored", "600", "300") GUICtrlSetOnEvent(-1, "Censored") $Waisenhausstrasse = GUICtrlCreateButton("Censored", "20", "500") GUICtrlSetOnEvent(-1, "Censored") $Exit = GUICtrlCreateMenu("Beenden") GUICtrlCreateMenuitem("Exit", $Exit) GUICtrlSetOnEvent(-1, "ExitMenu") GUISetState(@SW_HIDE, $Gui2) While 1 Sleep(100) WEnd ;####################################- OBERGESCHOSSE -########################################### Func Og1() $msgn = "ers" $n = "1." GUISetState(@SW_HIDE, $Gui1) GUISetState(@SW_SHOW, $Gui2) GUICtrlCreatePic(@ScriptDir & "\System\Censored.bmp", "5", "5", "691", "631") EndFunc ;==>Og1 Func Og2() $msgn = "zwei" $n = "2." GUISetState(@SW_HIDE, $Gui1) GUISetState(@SW_SHOW, $Gui2) GUICtrlCreatePic(@ScriptDir & "\System\Censored.bmp", "5", "5", "691", "631") EndFunc ;==>Og2 Func Og3() $msgn = "drit" $n = "3." GUISetState(@SW_HIDE, $Gui1) GUISetState(@SW_SHOW, $Gui2) GUICtrlCreatePic(@ScriptDir & "\System\Censored.bmp", "5", "5", "691", "631") EndFunc ;==>Og3 Func Og4() $msgn = "vier" $n = "4." GUISetState(@SW_HIDE, $Gui1) GUISetState(@SW_SHOW, $Gui2) GUICtrlCreatePic(@ScriptDir & "\System\Censored.bmp", "5", "5", "691", "631") EndFunc ;==>Og4 Func Og5() $msgn = "fünf" $n = "5." GUISetState(@SW_HIDE, $Gui1) GUISetState(@SW_SHOW, $Gui2) GUICtrlCreatePic(@ScriptDir & "\System\Censored.bmp", "5", "5", "691", "631") EndFunc ;==>Og5 Func Og6() $msgn = "sechs" $n = "6." GUISetState(@SW_HIDE, $Gui1) GUISetState(@SW_SHOW, $Gui2) GUICtrlCreatePic(@ScriptDir & "\System\Censored.bmp", "5", "5", "691", "631") EndFunc ;==>Og6 ;###################################- Ende OBERGESCHOSSE -####################################### Func Censored() $ort = "Censored" $FileList = _FileListToArray("\\Censored\swroot\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort) MsgBox(0, "Censored Drucker", "Die Drucker des " & $msgn & "ten Stockes am Censored wurden eingerichtet.") Exit EndFunc ;==>Censored Func Censored() $ort = "Censored" $FileList = _FileListToArray("\\Censored\swroot\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort) MsgBox(0, "Censored Drucker", "Die Drucker des " & $msgn & "ten Stockes am Censored wurden eingerichtet.") Exit EndFunc ;==>Censored Func Censored() $ort = "Censored" $FileList = _FileListToArray("\\Censored\swroot\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort) MsgBox(0, "Censored Drucker", "Die Drucker des " & $msgn & "ten Stockes an der Censored wurden eingerichtet.") Exit EndFunc ;==>Censored Func ExitMenu() Exit EndFunc ;==>ExitMenu Func Exit2() Exit EndFunc ;==>Exit2 I <3 it:http://www.autoitscript.com/forum/index.php?showtopic=69912http://www.autoitscript.com/forum/index.php?showtopic=69914http://www.autoitscript.com/forum/index.php?showtopic=69911
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now