Cursor.au3

« Older   Newer »
  Share  
Aaly
CAT_IMG Posted on 22/12/2010, 22:53     +1   -1




Ecco una UDF per gestire i cursori della GUI.
L'autore è GaryFrost, l'UDF presa dal sito ufficiale di AutoIt. Link.

Example.au3 (fatto io)
SPOILER (click to view)
CODICE
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "Cursor.au3"
#include <WinAPI.au3>

$Form = GUICreate("", 633, 447)
GUISetState(@SW_SHOW)


_Cursor_Show(Default)
$hCursor = _Cursor_LoadFromFile(@WindowsDir & "\Cursors\banana.ani")
While 1
       _Cursor_Set($hCursor)
       $nMsg = GUIGetMsg()
       Switch $nMsg
               Case $GUI_EVENT_CLOSE
                       _Cursor_Destroy($hCursor)
                       Exit

       EndSwitch
WEnd



Cursor.au3
SPOILER (click to view)
CODICE
#include-once
#include <StructureConstants.au3>

; #INDEX# =======================================================================================================================
; Title .........: Cursor
; Description ...: This module contains various Cursor API calls that have been translated to AutoIt functions.
; ===============================================================================================================================

; #NO_DOC_FUNCTION# =============================================================================================================
; Not working/documented/implimented at this time
; ===============================================================================================================================
; ===============================================================================================================================

; ===============================================================================================================================
; #CURRENT# =====================================================================================================================
;_Cursor_Destroy
;_Cursor_Get
;_Cursor_GetInfo
;_Cursor_GetPos
;_Cursor_GetPhysicalPos
;_Cursor_LoadFromFile
;_Cursor_Set
;_Cursor_SetPos
;_Cursor_SetPhysicalPos
;_Cursor_Show
; ===============================================================================================================================

; #NO_DOC_FUNCTION# =============================================================================================================
; Name...........: _Cursor_Copy
; Description ...: Copies the specified cursor.
; Syntax.........: _Cursor_Copy($hCursor)
; Parameters ....: $hCursor - Handle to the cursor to be copied
; Return values .: Success      - Handle to the duplicate cursor
;                  Failure      - 0
; Author ........: Gary Frost
; Modified.......:
; Remarks .......: Enables an application to obtain the handle to a cursor shape owned by another module.
;                  Then if the other module is freed, the application is still able to use the cursor shape.
;+
;                  Before closing, an application must call the _Cursor_Destroy function to free any system resources associated with the cursor.
;+
;                  Do not use the _Cursor_Copy function for animated cursors.
; Related .......:
; Link ..........; @@MsdnLink@@ CopyCursor
; Example .......;
; ===============================================================================================================================
Func _Cursor_Copy($hCursor)
       Local $iResult = DllCall("user32.dll", "hwnd", "CopyCursor", "hwnd", $hCursor)
       If IsArray($iResult) Then Return SetError(IsHWnd($iResult[0]) <> True, 0, $iResult[0])
       Return SetError(-1, 0, 0)
EndFunc   ;==>_Cursor_Copy

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_Destroy
; Description ...: Destroys a cursor and frees any memory the cursor occupied
; Syntax.........: _Cursor_Destroy($hCursor)
; Parameters ....: $hCursor - Handle to the cursor to be copied
; Return values .: Success      - True
;                  Failure      - False
; Author ........: Gary Frost
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ DestroyCursor
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_Destroy($hCursor)
       Local $iResult = DllCall("user32.dll", "int", "DestroyCursor", "hwnd", $hCursor)
       If @error Then Return SetError(-1, 0, False)
       Return $iResult[0] <> 0
EndFunc   ;==>_Cursor_Destroy

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_Get
; Description ...: Retrieves a handle to the current cursor
; Syntax.........: _Cursor_Get()
; Parameters ....:
; Return values .: Success      - Handle to the current cursor
;                  Failure      - 0
; Author ........: Gary Frost
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ GetCursor
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_Get()
       Local $iResult = DllCall("user32.dll", "hwnd", "GetCursor")
       If @error Then Return SetError(-1, -1, 0)
       Return $iResult[0]
EndFunc   ;==>_Cursor_Get

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_GetInfo
; Description ...: Retrieves information about the global cursor
; Syntax.........: _Cursor_GetInfo($hCursor)
; Parameters ....: $hCursor - Handle to the cursor
; Return values .: Success      - Structure $tagCURSORINFO
;                  Failure      - @error set to -1
; Author ........: Gary Frost
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ GetCursorInfo
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_GetInfo($hCursor)
       Local $tCURSORINFO = DllStructCreate($tagCURSORINFO)
       DllStructSetData($tCURSORINFO, "Size", DllStructGetSize($tCURSORINFO))
       DllStructSetData($tCURSORINFO, "hCursor", $hCursor)

       DllCall("user32.dll", "int", "GetCursorInfo", "ptr", DllStructGetPtr($tCURSORINFO))
       If @error Then Return SetError(-1, 0, $tCURSORINFO)
       Return $tCURSORINFO
EndFunc   ;==>_Cursor_GetInfo

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_GetPos
; Description ...: Retrieves the cursor's position, in screen coordinates
; Syntax.........: _Cursor_GetPos()
; Parameters ....:
; Return values .: Success      - Array in the following format:
;                  |[0] - X position of the cursor
;                  |[1] - Y position of the cursor
; Author ........: Gary Frost
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ GetCursorPos
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_GetPos()
       Local $aPos[2], $tPoint = DllStructCreate($tagPOINT)
       DllCall("user32.dll", "int", "GetCursorPos", "ptr", DllStructGetPtr($tPoint))
       If @error Then Return SetError(-1, 0, $aPos)
       $aPos[0] = DllStructGetData($tPoint, "X")
       $aPos[1] = DllStructGetData($tPoint, "Y")
       Return $aPos
EndFunc   ;==>_Cursor_GetPos

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_GetPhysicalPos
; Description ...: Retrieves the position of the cursor in physical coordinates
; Syntax.........: _Cursor_GetPhysicalPos()
; Parameters ....:
; Return values .: Success      - Array in the following format:
;                  |[0] - X position of the cursor
;                  |[1] - Y position of the cursor
; Author ........: Gary Frost
; Modified.......:
; Remarks .......: Minimum OS: Windows Vista
; Related .......:
; Link ..........; @@MsdnLink@@ GetPhysicalCursorPos
; Example .......;
; ===============================================================================================================================
Func _Cursor_GetPhysicalPos()
       Local $aPos[2], $tPoint = DllStructCreate($tagPOINT)
       DllCall("user32.dll", "int", "GetPhysicalCursorPos", "ptr", DllStructGetPtr($tPoint))
       If @error Then Return SetError(-1, 0, $aPos)
       $aPos[0] = DllStructGetData($tPoint, "X")
       $aPos[1] = DllStructGetData($tPoint, "Y")
       Return $aPos
EndFunc   ;==>_Cursor_GetPhysicalPos

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_LoadFromFile
; Description ...: Creates a cursor based on data contained in a file
; Syntax.........: _Cursor_LoadFromFile($sCursorFile)
; Parameters ....: $sCursorFile - File to retrieve cursor from
; Return values .: Success      - Handle to the cursor
;                  Failure      - 0
; Author ........: Gary Frost
; Modified.......:
; Remarks .......: The data in the file must be in either .CUR or .ANI format
; Related .......:
; Link ..........; @@MsdnLink@@ LoadCursorFromFile
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_LoadFromFile($sCursorFile)
       Local $iResult = DllCall("user32.dll", "hwnd", "LoadCursorFromFile", "str", $sCursorFile)
       If @error Then Return SetError(-1, -1, 0)
       Return $iResult[0]
EndFunc   ;==>_Cursor_LoadFromFile

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_Set
; Description ...: Sets the cursor shape
; Syntax.........: _Cursor_Set($hCursor)
; Parameters ....: $hCursor - Handle to the cursor
; Return values .: Success - Handle to the previous cursor, if there was one
;                  Failure - 0
; Author ........: Gary Frost
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ SetCursor
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_Set($hCursor)
       Local $iResult = DllCall("user32.dll", "hwnd", "SetCursor", "hwnd", $hCursor)
       If @error Then Return SetError(-1, 0, 0)
       Return $iResult[0]
EndFunc   ;==>_Cursor_Set

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_SetPos
; Description ...: Moves the cursor to the specified screen coordinates
; Syntax.........: _Cursor_SetPos($iX, $iY)
; Parameters ....: $iX      - Specifies the new x-coordinate of the cursor, in screen coordinates
;                  $iY      - Specifies the new y-coordinate of the cursor, in screen coordinates
; Return values .: Success - True
;                  Failure - False
; Author ........: Gary Frost
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........; @@MsdnLink@@ SetCursorPos
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_SetPos($iX, $iY)
       Local $iResult = DllCall("user32.dll", "int", "SetCursorPos", "int", $iX, "int", $iY)
       If @error Then Return SetError(-1, 0, False)
       Return $iResult[0] <> 0
EndFunc   ;==>_Cursor_SetPos

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_SetPhysicalPos
; Description ...: Sets the position of the cursor in physical coordinates
; Syntax.........: _Cursor_SetPhysicalPos($iX, $iY)
; Parameters ....: $iX      - Specifies the new x-coordinate of the cursor, in physical coordinates
;                  $iY      - Specifies the new y-coordinate of the cursor, in physical coordinates
; Return values .: Success - True
;                  Failure - False
; Author ........: Gary Frost
; Modified.......:
; Remarks .......: Minimum OS: Windows Vista
; Related .......:
; Link ..........; @@MsdnLink@@ SetPhysicalCursorPos
; Example .......;
; ===============================================================================================================================
Func _Cursor_SetPhysicalPos($iX, $iY)
       Local $iResult = DllCall("user32.dll", "int", "SetPhysicalCursorPos", "int", $iX, "int", $iY)
       If @error Then Return SetError(-1, 0, False)
       Return $iResult[0] <> 0
EndFunc   ;==>_Cursor_SetPhysicalPos

; #FUNCTION# ====================================================================================================================
; Name...........: _Cursor_Show
; Description ...: Displays or hides the cursor
; Syntax.........: _Cursor_Show($fShow)
; Parameters ....: $fShow       - If True, the curor is shown, otherwise it is hidden
; Return values .: Success      - The new display counter
; Author ........: Paul Campbell (PaulIA)
; Modified.......:
; Remarks .......: This function sets an internal display counter that determines whether the cursor  should  be  displayed.  The
;                  cursor is displayed only if the display count is greater than or equal to 0.  If a  mouse  is  installed,  the
;                  initial display count is 0. If no mouse is installed, the display count is -1.
; Related .......:
; Link ..........; @@MsdnLink@@ ShowCursor
; Example .......; Yes
; ===============================================================================================================================
Func _Cursor_Show($fShow = True)
       Local $aResult

       $aResult = DllCall("User32.dll", "int", "ShowCursor", "int", $fShow)
       Return $aResult[0]
EndFunc   ;==>_Cursor_Show


Allego anche il rar con tutto dentro.



Download attachment
cursore.rar ( Number of downloads: 122 )

 
Top
I.Holan
CAT_IMG Posted on 2/3/2012, 15:14     +1   -1




Good day. I need help. I need a script that can click on the coordinates, (x, y) at time intervals that vary.
Example:
1) mouseclick x = 100 y = 100
2) Pause 1 minute
3) mouseclick x = 200 y = 200
4) Pause 2 minutes
5) Repeat from the beginning, just change the times (accidentally, higher than the 30s)
This is translated via translate.google.com
 
Top
CAT_IMG Posted on 2/3/2012, 17:01     +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


I.Holan, introduce yourself in the right section and then open a new topic with your question.
 
Top
2 replies since 22/12/2010, 22:53   1004 views
  Share