AutoIt: 3.3.6.1
Версия: 1
Категория: Графика / GDI+
Описание: Радар на мышей
В зависимости от положения курсора рисует точку в окне.
Код
Снимок:
Автор(ы): dwerf
Дело было вечером, делать было нечего, на оффоруме попалась тема с названием "Mouse Radar".
Версия: 1
Категория: Графика / GDI+
Описание: Радар на мышей

В зависимости от положения курсора рисует точку в окне.
Код
Код:
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('GUIOnEventMode', 1)
$iAng = 0
$iPointX = -10
$iPointY = -10
$iAngSave = 0
$iPointSave = ''
$aTaskPos = WinGetPos('[class:Shell_TrayWnd]')
$hWnd = GUICreate('Radar', 151, 151, @DesktopWidth-151, @DesktopHeight-151-$aTaskPos[3], BitOR($WS_POPUP, $WS_SYSMENU), $WS_EX_TOPMOST)
GUISetBkColor(0)
GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
_GDIPlus_Startup()
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$hBackbufferBmp = _GDIPlus_BitmapCreateFromGraphics(151, 151, $hGraphics)
$hBackbufferGra = _GDIPlus_ImageGetGraphicsContext($hBackbufferBmp)
$hBackbuffer0Bmp = _GDIPlus_BitmapCreateFromGraphics(151, 151, $hBackbufferGra)
$hBackbuffer0Gra = _GDIPlus_ImageGetGraphicsContext($hBackbuffer0Bmp)
$hPen1 = _GDIPlus_PenCreate(0xFF00FF00)
$hBrush1 = _GDIPlus_BrushCreateSolid(0xFF00FF00)
_GDIPlus_GraphicsDrawLine($hBackbuffer0Gra, 75, 0, 75, 150, $hPen1)
_GDIPlus_GraphicsDrawLine($hBackbuffer0Gra, 0, 75, 150, 75, $hPen1)
_GDIPlus_GraphicsDrawEllipse($hBackbuffer0Gra, 0, 0, 150, 150, $hPen1)
_GDIPlus_GraphicsDrawEllipse($hBackbuffer0Gra, 25, 25, 100, 100, $hPen1)
_GDIPlus_GraphicsDrawEllipse($hBackbuffer0Gra, 50, 50, 50, 50, $hPen1)
OnAutoItExitRegister('_OnExit')
GUISetState()
While 1
For $iAng = 359 To 0 Step -1
_Draw()
Sleep(20)
Next
WEnd
Func _Exit()
Exit
EndFunc
Func _OnExit()
_GDIPlus_BrushDispose($hBrush1)
_GDIPlus_PenDispose($hPen1)
_GDIPlus_GraphicsDispose($hBackbuffer0Gra)
_GDIPlus_BitmapDispose($hBackbuffer0Bmp)
_GDIPlus_GraphicsDispose($hBackbufferGra)
_GDIPlus_BitmapDispose($hBackbufferBmp)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
EndFunc
Func _Draw()
_GDIPlus_GraphicsClear($hBackbufferGra)
_GDIPlus_GraphicsDrawImage($hBackbufferGra, $hBackbuffer0Bmp, 0, 0)
$aMousePos = MouseGetPos()
$iLineEndX = 75+(75*Cos($iAng*ACos(-1)/180))
$iLineEndY = 75-(75*Sin($iAng*ACos(-1)/180))
$iNewPointX = Round(150/@DesktopWidth*MouseGetPos(0))
$iNewPointY = Round(150/@DesktopHeight*MouseGetPos(1))
If (($iNewPointX <= $iLineEndX And $iNewPointX >= 75) Or ($iNewPointX >= $iLineEndX And $iNewPointX <= 75)) And (($iNewPointY <= $iLineEndY And $iNewPointY >= 75) Or ($iNewPointY >= $iLineEndY And $iNewPointY <= 75)) And (Round(($iNewPointX-75)/Cos($iAng*ACos(-1)/180), -1) = Round((75-$iNewPointY)/Sin($iAng*ACos(-1)/180), -1) Or $iAng = 0 Or $iAng = 90) Then
$iPointX = $iNewPointX
$iPointY = $iNewPointY
$iPointSave = $iPointX & @LF & $iPointY
$iAngSave = $iAng
Beep(500, 10)
ElseIf $iAngSave = $iAng And $iPointSave <> $iNewPointX & @LF & $iNewPointY Then
$iPointX = -10
$iPointY = -10
EndIf
_GDIPlus_GraphicsDrawLine($hBackbufferGra, 75, 75, $iLineEndX, $iLineEndY, $hPen1)
_GDIPlus_GraphicsFillEllipse($hBackbufferGra, $iPointX-2, $iPointY-2, 5, 5, $hBrush1)
_GDIPlus_GraphicsDrawImage($hGraphics, $hBackbufferBmp, 0, 0)
EndFunc
Снимок:

Автор(ы): dwerf
Дело было вечером, делать было нечего, на оффоруме попалась тема с названием "Mouse Radar".