Usuário com melhor resposta
Script que busca string no registro e alterar valor

Pergunta
-
Bom dia a todos.
Gostaria da ajuda de todos para a criação de um script que possa buscar no registro uma string com o nome printDuplexSupported e modificar os valores do hexa dela de hex:01 para hex:00 ou vice-versa.
Objetivo: Na empresa que trabalho possuímos impressoras multifuncionais RICOH que tem a opção de impressão duplex. Preciso ativar em todos os micros esta opção porém somente para impressora do modelo RICOH.
Eu encontrei o local onde geralmente fica a string, porém podemos ter nomes diferentes nos micros para a mesma impressora (EX: RICOH PCL 6 ), só que todos vão prevalecer o modelo RICOH em seu nome.[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\RICOH RPCS\DsDriver]
"printDuplexSupported"=hex:01
Grato.
Respostas
-
Olá,
Verifique o script abaixo:
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strComum = "RICOH"
strKeyPath = "SYSTEM\CurrentControlSet\Control\Print\Printers"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
if instr(subKey,strComum) > 0 Then
wscript.echo subkey
AlteraChave(subKey)
End if
Next
Sub AlteraChave(strimPressora)
Set objShell = CreateObject("WScript.Shell")
objShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\" & strImpressora & "\DsDriver\printDuplexSupported",0,"REG_DWORD"
End sub
Ele está varrendo o registro e quando encontra a palavra "RICOH" ele altera para 0 o valor...
Até mais,
Jesiel
Obs.: Se útil, classifique
- Marcado como Resposta Jesiel S. Pereira terça-feira, 20 de outubro de 2009 11:14
Todas as Respostas
-
Olá,
Para alterar o valor, utilize o script abaixo:
on error resume next
Set objShell = CreateObject("WScript.Shell")
objShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\RICOH RPCS\DsDriver\printDuplexSupported",1,"REG_DWORD"
Você pode criar 2 linhas (uma para cada modelo)
Até mais,
Jesiel
Obs.: Se útil, classifique
-
Muito obrigado Jesiel por responder, porém, como falei no texto anterior, pode ser que o nome da impressora seje renomeado por diversos nomes, porém a única palavra que vai prevalecer é o nome RICOH.
Então preciso de um VBS de busca e caso encontre alterar valor de 0 para 1 ou vice-versa.
Grato. -
Olá,
Verifique o script abaixo:
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strComum = "RICOH"
strKeyPath = "SYSTEM\CurrentControlSet\Control\Print\Printers"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
if instr(subKey,strComum) > 0 Then
wscript.echo subkey
AlteraChave(subKey)
End if
Next
Sub AlteraChave(strimPressora)
Set objShell = CreateObject("WScript.Shell")
objShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\" & strImpressora & "\DsDriver\printDuplexSupported",0,"REG_DWORD"
End sub
Ele está varrendo o registro e quando encontra a palavra "RICOH" ele altera para 0 o valor...
Até mais,
Jesiel
Obs.: Se útil, classifique
- Marcado como Resposta Jesiel S. Pereira terça-feira, 20 de outubro de 2009 11:14