none
Script Papel parede RRS feed

Respostas

  • Segue o Script que uso atualmente 
    Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") 
    Set oShell = CreateObject("WScript.Shell")
      Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor where DeviceID = 'DesktopMonitor1'",,0) 
      For Each objItem in colItems 
        intHorizontal = objItem.ScreenWidth 
        intVertical = objItem.ScreenHeight 
      
      strRes = intHorizontal&"x"&intVertical
      Next
     
      wscript.echo "Resolução = "&strRes
      
     Select Case strRes
     Case "800x600"
     sWallPaper = "c:\teste\papel.jpg "
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
     Case "1024x768" 
     sWallPaper = "c:\teste\papel.jpg "
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
     Case "1440x900"
     sWallPaper = "c:\teste\papel.jpg "
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
    Case "1920x1080"
     sWallPaper = "c:\teste\papel.jpg"
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
     End Select
    

    quarta-feira, 19 de fevereiro de 2014 13:45

Todas as Respostas

  • Rafael,

    Segue links que contém o código necessário, basta você juntar o "quebra-cabeça", qualquer coisa manda o seu script.

    Aqui está o código de como verificar qual é a resolução:

    I need a vbscript code to get screen resolution

    http://social.msdn.microsoft.com/Forums/en-US/89b032d5-7f30-431e-9528-e8b30b0d19a4/i-need-a-vbscript-code-to-get-screen-resolution?forum=scripting

    E aqui como se faz a alteração:

    Changing wallpaper depending on time of day via script or batch file?

    http://superuser.com/questions/436978/changing-wallpaper-depending-on-time-of-day-via-script-or-batch-file

    Set shell = WScript.CreateObject("WScript.Shell")
    wallpaper = "C:\path\to\wallpaper.jpg"
    shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
    shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True


    Fábio de Paula Junior


    terça-feira, 18 de fevereiro de 2014 16:41
    Moderador
  • Obrigado

    Tem algum script para colocar junto que defina o tipo de preenchimento no monitor como "Ajustar" ou "estender" ?

    quarta-feira, 19 de fevereiro de 2014 13:43
  • Segue o Script que uso atualmente 
    Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") 
    Set oShell = CreateObject("WScript.Shell")
      Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor where DeviceID = 'DesktopMonitor1'",,0) 
      For Each objItem in colItems 
        intHorizontal = objItem.ScreenWidth 
        intVertical = objItem.ScreenHeight 
      
      strRes = intHorizontal&"x"&intVertical
      Next
     
      wscript.echo "Resolução = "&strRes
      
     Select Case strRes
     Case "800x600"
     sWallPaper = "c:\teste\papel.jpg "
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
     Case "1024x768" 
     sWallPaper = "c:\teste\papel.jpg "
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
     Case "1440x900"
     sWallPaper = "c:\teste\papel.jpg "
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
    Case "1920x1080"
     sWallPaper = "c:\teste\papel.jpg"
    
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
    
     End Select
    

    quarta-feira, 19 de fevereiro de 2014 13:45
  • Rafael,

    Dá uma olhada dentro do registro em "HKCU\Control Panel\Desktop", se não me engano é a chave WallpaperStyle.

    Ficou muito bom seu script, eu só mudaria uma coisa: ao invés de repetir a linha oShell.Run e a linha oShell.RegWrite (veja que elas são iguais em todos os cases) em cada case eu colocaria elas apenas uma vez fora do Select Case. Assim o Select Case serviria apenas para setar a váriavel com o nome do papel de parede. 

    Select Case strRes
    	Case "800x600" 
    		sWallPaper = "c:\teste\papel.jpg "
    
    	Case "1024x768" 
    		sWallPaper = "c:\teste\papel.jpg "
    
    	Case "1440x900"
    		sWallPaper = "c:\teste\papel.jpg "
    
    	Case "1920x1080"
    		sWallPaper = "c:\teste\papel.jpg"
    
     End Select
     
    ' update in registry
    oShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", sWallPaper
    
    ' let the system know about the change
    oShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True



    Fábio de Paula Junior

    quarta-feira, 19 de fevereiro de 2014 13:52
    Moderador
  • O seu script não funcionou sera que algo de errado ?

    quarta-feira, 19 de fevereiro de 2014 14:02
  • Rafael,

    O único código que passei é apenas um fragmento, um exemplo. 


    Fábio de Paula Junior

    quarta-feira, 19 de fevereiro de 2014 14:03
    Moderador
  • Okay Obrigado consegui realizar a alteração 
    • Marcado como Resposta Rafael.Almeida quarta-feira, 19 de fevereiro de 2014 14:19
    • Não Marcado como Resposta Fábio JrModerator quarta-feira, 19 de fevereiro de 2014 14:24
    quarta-feira, 19 de fevereiro de 2014 14:19