none
Script que busca string no registro e alterar valor RRS feed

  • 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.

    sábado, 17 de outubro de 2009 13:31

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


    domingo, 18 de outubro de 2009 01:02

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


    domingo, 18 de outubro de 2009 00:14
  • 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.
    domingo, 18 de outubro de 2009 00:22
  • 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


    domingo, 18 de outubro de 2009 01:02