elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema con aplicaccion en vb.net
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con aplicaccion en vb.net  (Leído 2,642 veces)
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Problema con aplicaccion en vb.net
« en: 22 Junio 2010, 19:30 pm »

Hola a todos :D, estaba haciendo una aplicacion en donde capturo la pantalla de lo que se muestra en un webbrowser despues de hacer un resize, el problema es el siguiente:

Al momento de hacer la captura de pantalla, la nueva imagen se almacena en memoria y al hacer click en el boton "Vista Previa" la aplicacion se cae ya que aparece un mensaje diciendo que la propiedad "PictureBox1.Image es null".
(Lo cual me dice que la imagen capturada no se almacena en la propiedad Image del PictureBox).

Estaba intentando implementar eso y me dijeron que debia hacer previamente un "Save" en el Image del pictureBox para que la aplicacion no se caiga.


Mi aplicacion es la siguiente:

El Codigo del boton "Capturar" es este:


El Codigo posible y que nose bien como implementarlo (ya que no funciona) para guardar la imagen en la propiedad Image, es este:


Espero me puedan ayudar, gracias!  ;D


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Problema con aplicaccion en vb.net
« Respuesta #1 en: 22 Junio 2010, 19:34 pm »

El Codigo del boton "Capturar" es este:


El Codigo posible y que nose bien como implementarlo (ya que no funciona) para guardar la imagen en la propiedad Image, es este:


Es como una prueba donde hay que completar?  :laugh:

Podrias guardarlo en el disco y cargarlo en el picturebox (pa' codelive)  o en un memoryStream ._.


En línea

oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: Problema con aplicaccion en vb.net
« Respuesta #2 en: 22 Junio 2010, 19:50 pm »

jajaja no amigo, se envio de casualidad, el codigo de capturar es este:

Código
  1.  
  2. Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As Integer
  3. Public Enum TernaryRasterOperations 'API BitBlt
  4.        SRCCOPY = &HCC0020
  5.        SRCPAINT = &HEE0086
  6.        SRCAND = &H8800C6
  7.        SRCINVERT = &H660046
  8.        SRCERASE = &H440328
  9.        NOTSRCCOPY = &H330008
  10.        NOTSRCERASE = &H1100A6
  11.        MERGECOPY = &HC000CA
  12.        MERGEPAINT = &HBB0226
  13.        PATCOPY = &HF00021
  14.        PATPAINT = &HFB0A09
  15.        PATINVERT = &H5A0049
  16.        DSTINVERT = &H550009
  17.        BLACKNESS = &H42
  18.        WHITENESS = &HFF0062
  19.    End Enum
  20.    Private Sub Capturar(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapturar.Click
  21.        Dim srcGraphics As Graphics = WebBrowser1.CreateGraphics
  22.        Try
  23.            Dim destGraphics As Graphics = PictureBox1.CreateGraphics
  24.            Try
  25.                Dim hdcDest As IntPtr = destGraphics.GetHdc
  26.                Dim hdcSrc As IntPtr = srcGraphics.GetHdc
  27.                BitBlt(hdcDest, 0, 0, WebBrowser1.ClientRectangle.Width, WebBrowser1.ClientRectangle.Height, hdcSrc, 0, 0, CType(TernaryRasterOperations.SRCCOPY, Integer))
  28.                srcGraphics.ReleaseHdc(hdcSrc)
  29.                destGraphics.ReleaseHdc(hdcDest)
  30.                lblCaptura.Visible = True
  31.            Finally
  32.                CType(destGraphics, IDisposable).Dispose()
  33.            End Try
  34.        Finally
  35.            CType(srcGraphics, IDisposable).Dispose()
  36.        End Try
  37.    End Sub

Mi aplicacion:


El codigo posible a la solucion en el boton capturar pero que no me funciona:
    Private Sub Capturar(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCapturar.Click
        Dim srcGraphics As Graphics = WebBrowser1.CreateGraphics
        Try
            Dim destGraphics As Graphics = PictureBox1.CreateGraphics
            Dim bmpSource As New Bitmap(PictureBox1.Width, PictureBox1.Height, destGraphics)
            bmpSource.Save("Image.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
            Try
                Dim hdcDest As IntPtr = destGraphics.GetHdc
                Dim hdcSrc As IntPtr = srcGraphics.GetHdc
                BitBlt(hdcDest, 0, 0, WebBrowser1.ClientRectangle.Width, WebBrowser1.ClientRectangle.Height, hdcSrc, 0, 0, CType(TernaryRasterOperations.SRCCOPY, Integer))
                srcGraphics.ReleaseHdc(hdcSrc)
                destGraphics.ReleaseHdc(hdcDest)
                lblCaptura.Visible = True
                PictureBox1.Image = bmpSource.Clone()
            Finally
                CType(destGraphics, IDisposable).Dispose()
            End Try
        Finally
            CType(srcGraphics, IDisposable).Dispose()
        End Try
    End Sub
En línea

oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: Problema con aplicaccion en vb.net
« Respuesta #3 en: 22 Junio 2010, 19:54 pm »

PD. Lo que no deseo hacer es guardarlo en el disco ya que esta ventanita es parte de un sistema en linea  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines