Anatol_awesome
Новичок
- Сообщения
- 5
- Репутация
- 0
Всем Привет! Ребят помогите, голову ломаю уже неделю.
Задача такая:
Есть принтер hp 425 mfp, ставлю вот так
(т.к. при автоматической установке hp ставит кучу ненужного "барахла", после установки сношу не нужное!)
Теперь возникла необходимость установить второе мфу в один отдел. При установке второго, он прописывает его как "HP LaserJet 400 MFP M425 PCL 6_(copy 1)"
Написал поиск и определение по реестру Принтера, вот что вышло:
Все находит, один минус не могу его переименовать, что бы это сделать надо переименовать не параметр в реестре а полное название ветки реестра.
сделал бы фукницю на 2 параметра где второй был бы имя принтера, а первый как сейчас айпишник.
Помогите!
Задача такая:
Есть принтер hp 425 mfp, ставлю вот так
Код:
#NoTrayIcon
Func RemoveStuff()
Local $GUIDs[4] = ["{2EFA4E4C-7B5F-48F7-A1C0-1AA882B7A9C3}", "{55D8D1AB-94C2-498F-A165-608B834A30EA}", "{7C960641-0A27-45C6-96F8-BE4E04A4CC2C}","{028BF8B5-9143-4A68-84F3-A1A6D2E17889}"]
For $I = 0 To UBound($GUIDs)-1
RunWait("msiexec.exe /quiet /norestart /x" & $GUIDs[$I])
Next
EndFunc
Func HPInstall($IPAddr)
$R = 0
$R = RunWait(@ScriptDir & "\hpbcsiInstaller.exe /UI=Silent /DriverOnly=True /IPv4=" & $IPAddr & " /AcceptEULA=True", @ScriptDir, @SW_HIDE)
If $R = 0 Then
If @error <> 0 Then
$R = 20001
EndIf
EndIf
If $R = 0 Then
RemoveStuff()
EndIf
Return $R
EndFunc
If $CmdLine[0] = 0 Then
Exit 1
Else
Exit HPInstall($CmdLine[1])
EndIf
(т.к. при автоматической установке hp ставит кучу ненужного "барахла", после установки сношу не нужное!)
Теперь возникла необходимость установить второе мфу в один отдел. При установке второго, он прописывает его как "HP LaserJet 400 MFP M425 PCL 6_(copy 1)"
Написал поиск и определение по реестру Принтера, вот что вышло:
Код:
Dim Const $Print = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\"
$PName = "HP LaserJet M2727 MFP Series PCL 6"
Func _PrintName($KEY)
$i=1
$PSrch=RegEnumKey($KEY, $i)
While $PSrch <> ""
$PSrch = RegEnumKey($KEY, $i)
MsgBox(0, "Program", $PSrch)
if StringCompare ($PSrch, $PName) = 0 Then
;MsgBox(0,"Printer 2727", "yes")
$Name = String($PSrch)
MsgBox(4096, $i, $Name)
;$sInput = StringRegExpReplace ("HP LaserJet M2727 MFP Series PCL 6",
EndIf
$i=$i+1
Wend
EndFunc
$go = _PrintName($Print)
Все находит, один минус не могу его переименовать, что бы это сделать надо переименовать не параметр в реестре а полное название ветки реестра.
сделал бы фукницю на 2 параметра где второй был бы имя принтера, а первый как сейчас айпишник.
Помогите!