Что нового

[Реестр] Редактирование имени принтера.

Anatol_awesome

Новичок
Сообщения
5
Репутация
0
Всем Привет! Ребят помогите, голову ломаю уже неделю.

Задача такая:
Есть принтер 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)

Все находит, один минус не могу его переименовать, что бы это сделать надо переименовать не параметр в реестре а полное название ветки реестра.
657fe4183f25.jpg


сделал бы фукницю на 2 параметра где второй был бы имя принтера, а первый как сейчас айпишник.
Помогите!
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Для переименования ветки реестра есть функция _RegMoveKey из udf _RegFunc.au3.
 
Верх