none
Como puedo obtener la imagen actual del escritorio y colocarla en un image RRS feed

  • Pregunta

  • Buenos días y un cordial saludo, como dice mi pregunta me gustaría obtener la imagen del escritorio y después plasmarla dentro de un image desde C#, pero realmente no tengo conocimiento alguno, de mi parte es todo, espero puedan ayudarme, un fuerte abrazo.
    lunes, 25 de marzo de 2019 17:40

Respuestas

  • Hola:

    Adapta la sentencia a tus necesidades.

    Esta diseñado para que funciona desde un menustrip.

     Private Sub mnuCapturaPantalla_Click(sender As Object, e As EventArgs) Handles mnuCapturaPantalla.Click
            Dim a As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly
            Dim rm As New ResourceManager(a.GetName.Name & ".Textos", a)
    
            Dim RutaExe As String = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase).Remove(0, 6)
            Dim Pantallazo As Image
            Pantallazo = CapturaPantalla.TrincarImagen
            'Pantallazo.Save("C:\Users\gemma\Documents\Visual Studio 2015\Projects\FinancialSystem2016\FinancialSystem\bin\Debug\Captura Pantallas\pantallazo.jpg")
            Pantallazo.Save(RutaExe & "\Captura Pantallas\" & rm.GetString("btnBalSituacion") & ".jpg")
            MessageBox.Show("Pantalla guadada en 'Captura Pantallas' dentro de la carpeta del programa.", "TU PROGRAMA", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Sub

    Y en una clase llamada por ejemplo CapturaPantalla:

    Imports System.Drawing
    Imports System.Windows.Forms
    
    Public Class CapturaPantalla
        Public Shared Function TrincarImagen() As Image
    
            ' Tamaño de lo que queremos copiar
            ' En este caso el tamaño de la ventana principal
            Dim fSize As Size = Screen.PrimaryScreen.Bounds.Size
            ' Creamos el bitmap con el área que vamos a capturar
            Dim bm As New Bitmap(fSize.Width, fSize.Height)
            ' Un objeto Graphics a partir del bitmap
            Dim gr As Graphics = Graphics.FromImage(bm)
            ' Copiar todo el área de la pantalla
            gr.CopyFromScreen(0, 0, 0, 0, fSize)
    
            Return bm
        End Function
    End Class

    Un cordial saludo,

    Gemma

    • Marcado como respuesta Christian CJ martes, 26 de marzo de 2019 16:48
    martes, 26 de marzo de 2019 0:31

Todas las respuestas

  • Hola:

    Adapta la sentencia a tus necesidades.

    Esta diseñado para que funciona desde un menustrip.

     Private Sub mnuCapturaPantalla_Click(sender As Object, e As EventArgs) Handles mnuCapturaPantalla.Click
            Dim a As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly
            Dim rm As New ResourceManager(a.GetName.Name & ".Textos", a)
    
            Dim RutaExe As String = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase).Remove(0, 6)
            Dim Pantallazo As Image
            Pantallazo = CapturaPantalla.TrincarImagen
            'Pantallazo.Save("C:\Users\gemma\Documents\Visual Studio 2015\Projects\FinancialSystem2016\FinancialSystem\bin\Debug\Captura Pantallas\pantallazo.jpg")
            Pantallazo.Save(RutaExe & "\Captura Pantallas\" & rm.GetString("btnBalSituacion") & ".jpg")
            MessageBox.Show("Pantalla guadada en 'Captura Pantallas' dentro de la carpeta del programa.", "TU PROGRAMA", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End Sub

    Y en una clase llamada por ejemplo CapturaPantalla:

    Imports System.Drawing
    Imports System.Windows.Forms
    
    Public Class CapturaPantalla
        Public Shared Function TrincarImagen() As Image
    
            ' Tamaño de lo que queremos copiar
            ' En este caso el tamaño de la ventana principal
            Dim fSize As Size = Screen.PrimaryScreen.Bounds.Size
            ' Creamos el bitmap con el área que vamos a capturar
            Dim bm As New Bitmap(fSize.Width, fSize.Height)
            ' Un objeto Graphics a partir del bitmap
            Dim gr As Graphics = Graphics.FromImage(bm)
            ' Copiar todo el área de la pantalla
            gr.CopyFromScreen(0, 0, 0, 0, fSize)
    
            Return bm
        End Function
    End Class

    Un cordial saludo,

    Gemma

    • Marcado como respuesta Christian CJ martes, 26 de marzo de 2019 16:48
    martes, 26 de marzo de 2019 0:31
  • muchas gracias gemma_campilo, me ayudaste bastante es este aspecto
    martes, 26 de marzo de 2019 16:49