Dibujar encima de una página web
Dibujar encima de una página web
Hola, estoy tratando de dibujar encima de una página web con la función_WinAPI_SetPixel o con _WinAPI_BitBlt, el caso que si lo intento encima de una pagina en Mozilla si que se ve o por ejemplo encima del explorador de windows también pero si lo intento en una página de Internet explorer no sale nada. Alguien sabe por que sucede esto?
Re: Dibujar encima de una página web
Podrias hacer algo asi:
saludos
Código: Seleccionar todo
#include <GDIPlus.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
; Modified from <a href='http://www.autoitscript.com/forum/index.php?s=&showtopic=97126&view=findpost&p=698489' class='bbc_url' title=''>http://www.autoitscript.com/forum/index.php?s=&showtopic=97126&view=findpost&p=698489</a>
Opt("MustDeclareVars", 1)
Opt("GUIOnEventMode", 1)
Global $hBitmap, $hGui, $hGraphic, $hImage2, $GuiSizeX = @DesktopWidth, $GuiSizeY = @DesktopHeight
Global $GuiSize = 70, $hWnd, $hDC, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
Global $iX1 = 0, $iY1 = 0, $tPoint, $pPoint, $hBMPBuff, $hGraphicGUI, $hPen, $aMPos, $aMPosNew
Global $iOpacity = 255, $dll = DllOpen("user32.dll")
GUISetOnEvent(-3, "_Exit")
OnAutoItExitRegister("_Exit")
Main()
Func Main()
$hGui = GUICreate("L1", $GuiSizeX, $GuiSizeY, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
GUISetState(@SW_SHOW, $hGui)
_GDIPlus_Startup()
$hWnd = _WinAPI_GetDC(0)
$hDC = _WinAPI_CreateCompatibleDC($hWnd)
$hBitmap = _WinAPI_CreateCompatibleBitmap($hWnd, $GuiSizeX, $GuiSizeY)
_WinAPI_SelectObject($hDC, $hBitmap)
$hGraphic = _GDIPlus_GraphicsCreateFromHDC($hDC)
$hBMPBuff = _GDIPlus_BitmapCreateFromGraphics($GuiSizeX, $GuiSizeY, $hGraphic)
$hGraphicGUI = _GDIPlus_ImageGetGraphicsContext($hBMPBuff)
_GDIPlus_GraphicsClear($hGraphic)
$hPen = _GDIPlus_PenCreate(0xffff0000, 10)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", $GuiSizeX);$iWidth )
DllStructSetData($tSize, "Y", $GuiSizeY);$iHeight)
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", 1)
$tPoint = DllStructCreate($tagPOINT); Create point destination structure here
$pPoint = DllStructGetPtr($tPoint); Create pointer to this dll data structure, $pPTDest parameter
DllStructSetData($tPoint, "X", $iX1)
DllStructSetData($tPoint, "Y", $iY1)
_WinAPI_UpdateLayeredWindow($hGui, $hWnd, $pPoint, $pSize, $hDC, $pSource, 0, $pBlend, $ULW_ALPHA)
Do
While _IsPressed("01", $dll)
$aMPos = MouseGetPos()
_GDIPlus_GraphicsDrawLine($hGraphic, $aMPos[0], $aMPos[1],$aMPos[0]+1, $aMPos[1]+1, $hPen)
_WinAPI_UpdateLayeredWindow($hGui, $hWnd, 0, $pSize, $hDC, $pSource, 0, $pBlend, $ULW_ALPHA)
WEnd
Sleep(50)
Until _IsPressed("1B", $dll); ESC key
EndFunc ;==>Main
Func _Exit()
DllClose($dll)
_GDIPlus_PenDispose($hPen)
_GDIPlus_GraphicsDispose($hGraphicGUI)
_GDIPlus_GraphicsDispose($hGraphic)
_WinAPI_ReleaseDC(0, $hWnd)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hDC)
_GDIPlus_Shutdown()
GUIDelete($hGui)
Exit
EndFunc ;==>_Exit
- ............................................
......................................
Re: Dibujar encima de una página web
Le echaré un vistazo, parece un poco complicado, gracias
Re: Dibujar encima de una página web
Veo que se puede hacer casi de todo con Autoit.....
Pero veo que sigue siendo bastante desconocido o que cuando se compara con otros lenguajes es como el menos "listo" de la familia. A mi sin embargo me alucina... ¿será que no entiendo?
Por cierto, ¡Cuanto sabe Dany! Tiene respuesta para todo
Un saludo,
qpongo
Pero veo que sigue siendo bastante desconocido o que cuando se compara con otros lenguajes es como el menos "listo" de la familia. A mi sin embargo me alucina... ¿será que no entiendo?
Por cierto, ¡Cuanto sabe Dany! Tiene respuesta para todo
Un saludo,
qpongo
Re: Dibujar encima de una página web
Si. lo que pasa es que le tienen resentimiento a todos los lenguajes Basic. y a los que no soporta POO los toman por obsoletos.
Saludos
Saludos
- ............................................
......................................
Re: Dibujar encima de una página web
Es probable que sea eso sí. Ya te contaré que opino cuando sepa algo de POO.
Ahora mismo no entiendo bien cual es la diferencia o la ventaja, pero creo que aprenderé algo de Phyton que he leído es bastante asequible y cuando lo entienda en la práctica me posicionaré. Pero en principio no entiendo porqué elegir uno en vez de otros... cuando se puede elegir el mejor dependiendo de las necesidades.
Parece que Autoit es mejor para manejar ventanas y automatizar muchas cosas fácilmente.
Saludos.
Ahora mismo no entiendo bien cual es la diferencia o la ventaja, pero creo que aprenderé algo de Phyton que he leído es bastante asequible y cuando lo entienda en la práctica me posicionaré. Pero en principio no entiendo porqué elegir uno en vez de otros... cuando se puede elegir el mejor dependiendo de las necesidades.
Parece que Autoit es mejor para manejar ventanas y automatizar muchas cosas fácilmente.
Saludos.
Re: Dibujar encima de una página web
Por cierto, volviendo al tema, veo que la función _WinAPI_GetPixel tampoco funciona en IE, ¿hay alguna función sencilla que funcione para capturar el color un punto?, la función _ScreenCapture_Capture si que funciona pero luego hay que acceder al bitmap con _GDIPlus_BitmapGetPixel, parece un poco rebuscado.
Re: Dibujar encima de una página web
PixelGetColor
- ............................................
......................................
Re: Dibujar encima de una página web
Esta sí que funciona gracias Dany