Vaeb Posted October 17, 2007 Share 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 Link to comment Share on other sites More sharing options...
Bert Posted October 17, 2007 Share 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/ Link to comment Share on other sites More sharing options...
Vaeb Posted October 17, 2007 Author Share 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 Link to comment Share on other sites More sharing options...
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