onedayillpay Posted May 2, 2013 Share Posted May 2, 2013 (edited) i almost have a working example... i found the example script online for drawing a simple square then i added MouseGetPos() this almost works, but the rectangle changes size as your mouse moves around, im trying to keep a consistant size... edit _WinAPI_DrawRect($left, $top, $bottem, $right, 0x0000CC) I hate making the post and fixing my script a few minutes later... been a few years since i played with autoit... still love it ;-) #include #include Global $tRect While 1 $fov = MouseGetPos() $top = $fov[1] - 100 $bottem = $fov[1] + 100 $left = $fov[0] - 50 $right = $fov[0] + 50 ; refresh desktop _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), $tRect, 0, BitOR($RDW_INVALIDATE, $RDW_ALLCHILDREN)) _WinAPI_DrawRect($left, $top, $bottem, $right, 0x0000CC) Sleep(10) WEnd Func _WinAPI_DrawRect($start_x, $start_y, $iWidth, $iHeight, $iColor) Local $hDC = _WinAPI_GetWindowDC(0) ; DC of entire screen (desktop) $tRect = DllStructCreate($tagRECT) DllStructSetData($tRect, 1, $start_x) DllStructSetData($tRect, 2, $start_y) DllStructSetData($tRect, 3, $iWidth) ; x-coordinate of the lower-right corner of the rectangle DllStructSetData($tRect, 4, $iHeight) ; y-coordinate of the lower-right corner of the rectangle Local $hBrush = _WinAPI_CreateSolidBrush($iColor) _WinAPI_FrameRect($hDC, DllStructGetPtr($tRect), $hBrush) ; clear resources _WinAPI_DeleteObject($hBrush) _WinAPI_ReleaseDC(0, $hDC) EndFunc ;==>_WinAPI_DrawRect Edited May 2, 2013 by onedayillpay Link to comment Share on other sites More sharing options...
AZJIO Posted May 2, 2013 Share Posted May 2, 2013 Check the load on the processor.Install "AnVir Task Manager", to monitor the CPU load while the script. It has a composite/compound tray icon My other projects or all Link to comment Share on other sites More sharing options...
MouseSpotter Posted May 2, 2013 Share Posted May 2, 2013 try: _WinAPI_DrawRect($left, $top, $right , $bottem , 0x0000CC) Link to comment Share on other sites More sharing options...
PhoenixXL Posted May 2, 2013 Share Posted May 2, 2013 (edited) Do you want somewhat like thisexpandcollapse popup#include <WinAPI.au3> #include <APIConstants.au3> #include <WindowsConstants.au3> #include <GUIConstants.au3> Global $hWin = _GUI_Transparent_Client(-1, -1, -1, -1, 5, 0x0000CC) Global $aPos = WinGetPos($hWin) Do Sleep(10) $aMouse = MouseGetPos() WinMove($hWin, "", $aMouse[0] - $aPos[2] / 2, $aMouse[1] - $aPos[3] / 2) Until GUIGetMsg() = $GUI_EVENT_CLOSE Func _GUI_Transparent_Client($iX, $iY, $iWidth, $iHeight, $iFrameWidth = 10, $iColor = 0) $hGUI = GUICreate("", $iX, $iY, $iWidth, $iHeight, $WS_POPUP, $WS_EX_TOPMOST) $aPos = WinGetPos($hGUI) _GuiHole($hGUI, $iFrameWidth, $iFrameWidth, $aPos[2] - 2 * $iFrameWidth, $aPos[3] - 2 * $iFrameWidth, $aPos[2], $aPos[3]) GUISetBkColor($iColor) GUISetState() Return $hGUI EndFunc ;==>_GUI_Transparent_Client Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh, $width, $height) Local $outer_rgn, $inner_rgn, $combined_rgn $outer_rgn = _WinAPI_CreateRectRgn(0, 0, $width, $height) $inner_rgn = _WinAPI_CreateRectRgn($i_x, $i_y, $i_x + $i_sizew, $i_y + $i_sizeh) $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0) _WinAPI_CombineRgn($combined_rgn, $outer_rgn, $inner_rgn, $RGN_DIFF) _WinAPI_DeleteObject($outer_rgn) _WinAPI_DeleteObject($inner_rgn) _WinAPI_SetWindowRgn($h_win, $combined_rgn) EndFunc ;==>_GuiHoleIf you paint on the Screen there would be obvious flickers, you can't help that. A GUI is a better choice Edited May 2, 2013 by PhoenixXL My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
NassauSky Posted May 8, 2020 Share Posted May 8, 2020 @PhoenixXL that's an excellent function!!! Just note that you reversed the X,Y,W,H should be W,H,X,Y Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now