Foros del Web » Programación para mayores de 30 ;) » .NET »

Establecer como Fondo de Escritorio con VB 2005

Estas en el tema de Establecer como Fondo de Escritorio con VB 2005 en el foro de .NET en Foros del Web. Establecer como Fondo de Escritorio con VB 2005 Bueno mi iniciativa es simple, hacer q una imagen sea establecida como fondo de Escritorio claro esto ...
  #1 (permalink)  
Antiguo 29/08/2009, 11:05
Avatar de cobossagrav  
Fecha de Ingreso: junio-2009
Ubicación: Cusco - Perú
Mensajes: 414
Antigüedad: 14 años, 11 meses
Puntos: 1
Establecer como Fondo de Escritorio con VB 2005

Establecer como Fondo de Escritorio con VB 2005

Bueno mi iniciativa es simple, hacer q una imagen sea establecida como fondo de Escritorio claro esto realizarlo desde Visual Basic 2005…

Alguien sería tan amable de brindarme su ayuda.
__________________
Saludos y Gracias.
  #2 (permalink)  
Antiguo 29/08/2009, 17:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 17 años, 8 meses
Puntos: 3
Respuesta: Establecer como Fondo de Escritorio con VB 2005

Tienes dos opciones, la fácil (bastance sencilla pero ofrece menos posibilidades) y la difícil (complicada, pero muy versátil).

Fácil: poniendo la ruta del archivo en la llave "HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper" en el registro. Cuando usas este método tienes que desloguearte de la sesión para que los cambios surtan efecto.

Difícil: invocando la API de Windows... Para esto importas la DLL "USER32.DLL" (aunque me parece que para sistemas 64 bits la DLL se llama "USER.DLL") y llamando la función: SystemParametersInfo.

P.S.: Para modificar el registro usa este método.
Para mas información sobre como importar DLLs ve aquí
para mas información sobre la función SystemParametersInfo ve aquí
  #3 (permalink)  
Antiguo 29/08/2009, 18:13
Avatar de cobossagrav  
Fecha de Ingreso: junio-2009
Ubicación: Cusco - Perú
Mensajes: 414
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Establecer como Fondo de Escritorio con VB 2005

Waw q dilema, bueno me voy por la difícil, pero no hay un tutor sobre esto?
__________________
Saludos y Gracias.
  #4 (permalink)  
Antiguo 29/08/2009, 19:07
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 17 años, 8 meses
Puntos: 3
Respuesta: Establecer como Fondo de Escritorio con VB 2005

Seguro que sí, lamentablemente no tengo mucho tiempo para buscarlo ahora mismo.... Pero busca en google sobre como importar DLLs y como usar la función SystemParametersInfo.

En cuanto regrese buscaré, me parece que en algún lugar de mi desktop debe de quedar un backup de una aplicación que se encarga de hacer eso usando la API ;).
  #5 (permalink)  
Antiguo 29/08/2009, 20:50
Avatar de cobossagrav  
Fecha de Ingreso: junio-2009
Ubicación: Cusco - Perú
Mensajes: 414
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Establecer como Fondo de Escritorio con VB 2005

vale gracias por tu aporte, ya me pondre a buscar
__________________
Saludos y Gracias.
  #6 (permalink)  
Antiguo 29/08/2009, 21:02
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Establecer como Fondo de Escritorio con VB 2005

Hola.

Un código que podes usar es este, te pide que selecciones una imagen por medio de filebrowse pero si queres lo podes adaptar para tu gusto:

Código PHP:
Imports System.Drawing
Imports System
.Drawing.Drawing2D
Imports System
.Drawing.Imaging

Public Class frmMain
    Inherits System
.Windows.Forms.Form
'api to set the systems parameters for changing the wallpaper
    
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As Integer

    '
constants to be used with the above api
        
Private Const SPI_SETDESKWALLPAPER 20
        
Private Const SPIF_UPDATEINIFILE = &H1

Private Sub btnSetWallpaper_Click(ByVal sender As System.ObjectByVal e As          
                  
System.EventArgsHandles btnSetWallpaper.Click

        
'just some generic path and name for the image in the picturebox to save to
        Dim imagePath As String = Application.StartupPath & "\myNewWallpaper.bmp"

        
        pic.Image.Save(imagePath, ImageFormat.Bmp)

        '
set the parameters to change the wallpaper to the image you selected
        SystemParametersInfo
(SPI_SETDESKWALLPAPER0imagePathSPIF_UPDATEINIFILE)

    
End Sub

 
Private Sub btnBrowse_Click(ByVal sender As System.ObjectByVal e As System.EventArgs)             
          
Handles btnBrowse.Click

         
'select a image and get the path
        Dim dlg As OpenFileDialog = New OpenFileDialog

        dlg.Filter = "Image Files (*.bmp, *.gif, *.jpg)|*.bmp;*.gif;*.jpg"
        dlg.Title = "Select the image to load."

        dlg.ShowDialog()

        '
put the selected image in the picturebox to see it
        pic
.Image Image.FromFile(dlg.FileName)
        
dlg.Dispose()

    
End Sub
End 
class 
http://www.devx.com/tips/Tip/21380
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #7 (permalink)  
Antiguo 31/08/2009, 10:55
Avatar de cobossagrav  
Fecha de Ingreso: junio-2009
Ubicación: Cusco - Perú
Mensajes: 414
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Establecer como Fondo de Escritorio con VB 2005

ahora mismo lo implemento gracias por el aporte
__________________
Saludos y Gracias.
  #8 (permalink)  
Antiguo 30/10/2009, 12:24
Avatar de cobossagrav  
Fecha de Ingreso: junio-2009
Ubicación: Cusco - Perú
Mensajes: 414
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Establecer como Fondo de Escritorio con VB 2005

Colega, este código resulta la primera vez pero de ahí se quita el fondo de pantalla.
Es decir, lo probé la primera vez, y todo corría excelentemente…
Pero al cerrar la aplicación mi escritorio pierde la imagen q le puse como fondo de pantalla y al volver a usar el programa, pues ya no corre ya no se da nada,
Por q es eso me puedes decir.
__________________
Saludos y Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.