Problemas con _ScreenCapture_Capture

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.

Problemas con _ScreenCapture_Capture

Notapor pan » 18 Abr 2017, 22:05

Cabros que puede ser que al monteo de ocupar _ScreenCapture_CaptureWnd no me tome la ventana hijo

Ejemplo:

Con Prt Scr de windows:

Imagen

Con _ScreenCapture_CaptureWnd de autoIt:

Imagen

Como ven la venta hijo (verde) se pierde trate dirigiendo la _ScreenCapture_CaptureWnd a la venta y esta no muestra su contenido tambien prove varios programas de captura que alguno usuarios del foro hicieron ejemplo viewtopic.php?f=5&t=1848


Mi humilde código

Código: Seleccionar todo
#include <ScreenCapture.au3>

HotKeySet("!{F8}", "Salir") ;Pulsando alt + f8  llamo a una función

   $dias=0
   $horas = 0
   $minutos = 0
   $segundos = 10

   $totalsegundos = $dias*3600*24+$horas * 3600 + $minutos * 60 + $segundos
   While 1
      Sleep(1000 * ($totalsegundos-20))
      ;Miramos la pantalla Principal
         AutoItSetOption('MouseCoordMode', 0)
         WinWait('Internet Caffee Administrator [REGISTRED]')
         WinActivate('Internet Caffee Administrator [REGISTRED]')
         MouseClick('primary',600,390,1,0)
         Sleep(1000)
      ;Tomamos la foto
         
         $hWnd = WinGetHandle("Internet Caffee Administrator [REGISTRED]")
         Sleep(500)
         $SsTake = _ScreenCapture_CaptureWnd("", $hWnd)
         _ScreenCapture_SaveImage(@MyDocumentsDir & "\imagen.jpg", $SsTake)
         
      ;Mostramos la foto   
         ShellExecute(@MyDocumentsDir & "\imagen.jpg")
               
   WEnd
   
   Func Salir()
      Exit
   EndFunc




Si alguien sabe de algo :)
Avatar de Usuario
pan
 
Mensajes: 12
Registrado: 18 Abr 2017, 20:25

Re: Problemas con _ScreenCapture_Capture

Notapor Chefito » 21 Abr 2017, 00:40

La función _ScreenCapture_CaptureWnd te captura la ventana que tu le has dicho que capture, por eso no te captura la ventana de arriba. Utiliza la función _ScreenCapture_Capture para capturar toda la pantalla en vez de _ScreenCapture_CaptureWnd a ver que resultado te da :smt003 . Recuerda que estas funciones pueden capturar el trozo que le indiques, no hace falta que captures toda la pantalla si no quieres.
También puedes capturar las dos ventanas independientemente. El título de la otra ventana supongo que sea: Totalcounters:

Si sigues con problemas, dilo que hay otras formas de hacerlo. Pero seguramente con esta función se te solucionará el problema.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Chefito
Profesional del Autoit
 
Mensajes: 2027
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Problemas con _ScreenCapture_Capture

Notapor pan » 21 Abr 2017, 18:51

Si Chefito intente dirigiendo la captura a la venta Totalcounters y sale la foto así:

Imagen


probé también _ScreenCapture_Capture pantalla completa y tampoco aparece quizas es un problema referente a la ventana que es trasparente le voy a dejar la info de la ventana si algo les dice.



>>>> Window <<<<
Title: TotalCounters
Class: TFrmTotalCounters
Position: 830, 467
Size: 258, 117
Style: 0x96000000
ExStyle: 0x00090000
Handle: 0x00000000000E054A

>>>> Control <<<<
Class: TvgScene
Instance: 1
ClassnameNN: TvgScene1
Name:
Advanced (Class): [CLASS:TvgScene; INSTANCE:1]
ID: 1377614
Text:
Position: 0, 0
Size: 258, 117
ControlClick Coords: 148, 27
Style: 0x54000000
ExStyle: 0x00000000
Handle: 0x000000000015054E

>>>> Mouse <<<<
Position: 978, 494
Cursor ID: 0
Color: 0x343434

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<

>>>> Hidden Text <<<<
Avatar de Usuario
pan
 
Mensajes: 12
Registrado: 18 Abr 2017, 20:25

Re: Problemas con _ScreenCapture_Capture

Notapor Chefito » 22 Abr 2017, 12:42

No se porque no se captura esa ventana. Tendría que tener acceso a ella para hacer pruebas y ver que puede pasar. Seguro que capturas bien el handle de esa ventana? Recuerda que se puede capturar con el título, la clase, etc...

Igualmente, si dices que con la tecla imprimir pantalla te aparece sin problemas, pues hazlo así y no te compliques la vida.
Código: Seleccionar todo
#include <ScreenCapture.au3>
#include <Clipboard.au3>

send("{PRINTSCREEN}")

While _ClipBoard_IsFormatAvailable($CF_BITMAP) <> 1
   Sleep(50)
WEnd
While _ClipBoard_Open(0) <> 1
   Sleep(50)
WEnd

$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)

While IsPtr($hBitmap) = 0
   Sleep(50)
WEnd

_ScreenCapture_SaveImage(@MyDocumentsDir & "\GDIPlus_Image.jpg", $hBitmap)

_ClipBoard_Close()

ShellExecute(@MyDocumentsDir & "\GDIPlus_Image.jpg", $hBitmap)

Esto es un ejemplo básico. Se podrían tratar los errores mucho mejor. Eso te lo dejo a ti :smt002 .
Si te interesa, también puedes tratar la imagen que capturas. Para eso tenemos la udf gdiplus, aunque muchas veces no es fácil de lidiar con ella. Pero tranquilo, hay muchos ejemplos.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Chefito
Profesional del Autoit
 
Mensajes: 2027
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Problemas con _ScreenCapture_Capture

Notapor pan » 03 May 2017, 06:11

Muchas gracias chefito lo único que le agregue fue el send("!{PRINTSCREEN}") para que haga la función de alt + print y tome la ventana que solo necesito

Código: Seleccionar todo

;Subimos la foto
         Local $Server = 'mueblesmiguelguerra.cl' ; UNIVERSITY OF CAMBRIDGE ANONYMOUS FTP SERVER
         Local $Username = '******'
         Local $Pass = '********'

         Local $Open = _FTP_Open('MyFTP Control')
         Local $Conn = _FTP_Connect($Open, $Server, $Username, $Pass)
         If @error Then
            MsgBox($MB_SYSTEMMODAL, '_FTP_Connect', 'ERROR=' & @error)
         Else
            
            Local $s_LocalFile = "D:\IN\imagen.jpg"
            Local $s_RemoteFile = "/home/mueblesm/public_html/prueba/imagen.jpg"
                        
            ;Local $DirC = _FTP_DirCreate($Conn, "/public_html/prueba")
            Local $Arch = _FTP_FilePut($Conn, $s_LocalFile, $s_RemoteFile ,$FTP_TRANSFER_TYPE_BINARY)
            Local $Ftpc = _FTP_Close($Open)
            FileMove ("D:\IN\imagen.jpg", "D:\RES\") ; Mueve el archivo que ya se subio a una unidad que contendra estos respaldos dentro del equipo local.
    
         EndIf



Ahora el problema lo tengo al subir al FTP lo veo todo bien no c por que la imagen no se sube puedo crear carpetas pero no subir imágenes :smt021
Avatar de Usuario
pan
 
Mensajes: 12
Registrado: 18 Abr 2017, 20:25


Volver a Soporte (Ayuda >Hacker)

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot], Google [Bot] y 1 invitado

cron