Amigos, que tal...
Lo que estoy intentando es mostrar en un picturebox una captura de una ventana X, para esto estoy obteniendo el handle de la ventana que necesito y luego de varias funciones obtengo lo que quiero.
Pero tengo un problema.. Para hacer esto me basé en un ejemplo que tomaba la captura de la ventana activa. Pero en vez de mandarle el handle de la ventana activa, le mando el de la ventana que quiero.
Pero si dicha ventana no está activa, sale la que está arriba de ésta.
Por ejemplo, yo tengo abierto Opera y abajo bloc de notas, y quiero una captura de bloc de notas... En la captura sale la parte que ocupa bloc de notas, en opera.
Espero que me puedan entender.
¿Alguien sabe como tomar una captura de una ventana X?
Gracias.
Capturar una ventana no activa? No creo que puedas :-\... bueno, yo al menos no lo consegui... talvez con su hdc... no se... pero siempre puedes ponerla activa SetForeGroundWindow()
Saludos ;)
mmm pienso lo mismo que Karcrack ya que la zona que no esta activa o esta detrás de otra ventana esta deja de pintarse, así es que veo difícil capturarla si no esta activa.
Edito: aunque he visto un programa que hace eso, excepto cuando están minimizadas, este se llama TaskSwitchXP... quizá lo conozcan...
SALUDOS.
Cita de: SONIC88 en 29 Abril 2009, 22:20 PM
mmm pienso lo mismo que Karcrack ya que la zona que no esta activa o esta detrás de otra ventana esta deja de pintarse, así es que veo difícil capturarla si no esta activa.
Edito: aunque he visto un programa que hace eso, excepto cuando están minimizadas, este se llama TaskSwitchXP... quizá lo conozcan...
SALUDOS.
Cierto, aunque la ventana este tapada por otra la obtiene entera ;-) Imagino que trabaja con el hdc... :-\ Sera cuestion de Debuggear :xD
Estaba a punto de decir que no se podía y me iba a jugar la cabeza cosa que la tengo grande :laugh:, pero probé el programa y me cerro la boca así que me quede caliente en saber como era y estuve como 2 horas buscando y sabia que venia por el lado de WM_PRINT pero este solo trabaja de forma interna así que lo que hice fue buscar el nombre del autor del programa mas WM_PRINT y TATAN!!! ;D era una pelotudez Barbara
Option Explicit
Private Declare Function PrintWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
Const PW_CLIENTONLY = &H1
Private Sub Command1_Click()
PrintWindow Handle, Me.hDC, 0
End Sub
pero bueno la verdad me gusto esto se me ocurren un par de cosas para usarlo y tampoco tenia idea como era la cosa con WM_PRINT
Saludos
Cita de: LeandroA en 30 Abril 2009, 09:25 AM
Estaba a punto de decir que no se podía y me iba a jugar la cabeza cosa que la tengo grande :laugh:, pero probé el programa y me cerro la boca así que me quede caliente en saber como era y estuve como 2 horas buscando y sabia que venia por el lado de WM_PRINT pero este solo trabaja de forma interna así que lo que hice fue buscar el nombre del autor del programa mas WM_PRINT y TATAN!!! ;D era una pelotudez Barbara
Option Explicit
Private Declare Function PrintWindow Lib "user32.dll" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long
Const PW_CLIENTONLY = &H1
Private Sub Command1_Click()
PrintWindow Handle, Me.hDC, 0
End Sub
pero bueno la verdad me gusto esto se me ocurren un par de cosas para usarlo y tampoco tenia idea como era la cosa con WM_PRINT
Saludos
Solo una palabra Leandro...
BRILLANTEEso está excelente...
Gran hallazgo Leandro! ;D
Solo me queda decir "eres un GRANDE", jaja, muy bien LEO... ;-)
SALUDOS!!