sábado, 9 de junio de 2012

Establecer imagen como fondo de pantalla en Visual Basic .NET

En esta ocasión veremos cómo establecer una imagen como papel tapiz en Windows. En concreto, estableceremos un Bitmap como fondo de pantalla. El código es el siguiente:

Primero creamos el procedimiento al que llamaremos más tarde:

    Sub FondoPantalla(ByVal bmp As Bitmap)
            Const SETDESKWALLPAPER = 20 'Fondo de pantalla
            Const UPDATEINIFILE = &H1 'Fondo de pantalla
            Dim ruta As String
            ruta = System.IO.Directory.GetCurrentDirectory() & "\fondo.jpg" 'Ruta donde guardaremos la imagen
            bmp.Save(ruta, System.Drawing.Imaging.ImageFormat.Jpeg) 'Guardamos la imagen
            SystemParametersInfo(SETDESKWALLPAPER, 0, ruta, UPDATEINIFILE)
            My.Computer.FileSystem.DeleteFile(ruta, FileIO.UIOption.AllDialogs, _   FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing) 'La establecemos como fondo
        End Sub

A continuación, llamamos al procedimiento desde un botón en el formulario principal:
    Private Sub FondoDePantallaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As _     System.EventArgs) Handles FondoDePantallaToolStripMenuItem.Click
        Dim bmp As New Bitmap(PictureBox1.Image) 'Creamos un bitmap con el contenido de un PictureBox
        FondoPantalla(bmp)  'Llamamos al procedimiento enviándole el Bitmap
    End Sub

De esta manera se habrá establecido la imagen contenida en un PictureBox como fondo de pantalla.

7 comentarios:

  1. y para hacer un tapiz. digamos que tengo una pequeña imagen de 80px como relleno todo el formulario al cargarse automáticamente... ayuda porfavor :D failnickx@gmail.com

    ResponderEliminar
  2. No lo he entendido bien. Explícame de nuevo qué quieres hacer.
    Un saludo

    ResponderEliminar
  3. Si lo que quieres es poner una imagen como fondo de un formulario, puedes hacerlo desde la ventana de propiedades del formulario. Primero debes seleccionar el formulario y luego asignar la imagen desde la propiedad "BackgroundImage".
    Si lo prefieres hacer desde el código, sería algo así:
    Dim fondo As New Bitmap("C:\Users\PC\Desktop\imagenFondo.jpg")
    Me.BackgroundImage = fondo
    Un saludo

    ResponderEliminar
  4. olle bro pordesir si tengo un picturebox1 una imagne de la carpeta de recursos y uqsiera cambiarla por otra demas de agregarla en la carpeta de recursos y se conserve la imagne nueva en el como se podria hacer pordesir (quiero que canvie la imagne del picture yse guarde en la nueva carpeta de recursos y al cerar y abrir nuevamnte siga hay porque pongo otra y no se guarda solo se muetra y al cerar y abrir regresa la imagen predefinida)

    hacer un efecto papal tapis de windows canviarla i se quede asi asta nuevo cambio de imagne

    ResponderEliminar
  5. Buen material.
    Pero yo estoy intentando como cambiar la pantalla de bienvenidad o de inicio del windows

    ResponderEliminar
  6. Gracias por la informacion, en sistemas de varias pantallas, tienes idea de como poner uno diferente en cada pantalla. Gracias

    ResponderEliminar