• Fuentes

 #487280  por Blau
 
Hola,
os traigo algunas funciones que actúan como AntiEmulation que se nos ocurrieron hablando por el grupo de skype de Indetectables. La idea es que no se ejecute X función hasta que no haya algún cambio.
#cs ----------------------------------------------------------------------------
 AutoIt Version: 3.3.8.1
 Author:         Blau
 Thanks to: SadFud
#ce ----------------------------------------------------------------------------

#include <Misc.au3>

Local $aParams[3] ;Array que contiene los parámetros del callback
$aParams[0] = "CallArgArray" ;Obligatorio para la función Call
$aParams[1] = "Caca" ;$sTitle
$aParams[2] = "Pedo" ;$sMessage

AntiEmulationByMouse("Funciona", $aParams)
AntiEmulationByFreeSpace("Funciona", $aParams)
AntiEmulationByPixel("Funciona", $aParams)
AntiEmulationByWindow("Funciona", $aParams)
AntiEmulationByKey(41, "Funciona", $aParams)

Func AntiEmulationByMouse($sFunction, $aParams)
    Local $aPos = MouseGetPos() ;Obtiene la posición del ratón
    Local $bPos = MouseGetPos() ;Obtiene la posición del ratón otra vez
    While $aPos[0] = $bPos[0] And $aPos[1] = $bPos[1] ;Si las posiciones son iguales
		Sleep(100)	;Esperamos 100 milisegundos
        $bPos = MouseGetPos() ;Obtenemos de nuevo la posición del ratón
    WEnd
	Call($sFunction, $aParams) ;Llamamos a la función callback
EndFunc

Func AntiEmulationByWindow($sFunction, $aParams)
    Local $aWindow = WinGetTitle("[ACTIVE]")
    Local $bWindow = WinGetTitle("[ACTIVE]")
    While $aWindow = $bWindow
		Sleep(100)
        $bWindow = WinGetTitle("[ACTIVE]")
    WEnd
	Call($sFunction, $aParams)
EndFunc

Func AntiEmulationByKey($sKey, $sFunction, $aParams) ;https://www.autoitscript.com/autoit3/docs/libfunctions/_IsPressed.htm
    While Not _IsPressed($sKey)
		Sleep(100)
    WEnd
	Call($sFunction, $aParams)
EndFunc

Func AntiEmulationByFreeSpace($sFunction, $aParams)
    Local $aSpace = DriveSpaceFree(@HomeDrive & "\")
    Local $bSpace = DriveSpaceFree(@HomeDrive & "\")
    While $aSpace = $bSpace
		Sleep(100)
        $bSpace = DriveSpaceFree(@HomeDrive & "\")
    WEnd
	Call($sFunction, $aParams)
EndFunc

Func AntiEmulationByPixel($sFunction, $aParams)
	Local $nRandomX = Random(0, @DeskTopHeight, 1)
	Local $nRandomY = Random(0, @DeskTopWidth, 1)
    Local $aPixel = PixelGetColor ($nRandomX, $nRandomY)
    Local $bPixel = PixelGetColor ($nRandomX, $nRandomY)
    While $aPixel = $bPixel
		Sleep(100)
       $bPixel = PixelGetColor ($nRandomX, $nRandomY)
    WEnd
	Call($sFunction, $aParams)
EndFunc

Func Funciona($sTitle, $sMessage)
	MsgBox(0, $sTitle, $sMessage)
EndFunc
 #487281  por Pink
 
Gracias por las funciones Blau. Nunca he usado Call en AutoIt(Por alguna razón que desconozco no me gusta)

en la ultimas versiones de AutoIt podrías hacer algo así:

$myFunction("hola","mundo")


Saludos
 #487283  por Blau
 
Pink escribió:Gracias por las funciones Blau. Nunca he usado Call en AutoIt(Por alguna razón que desconozco no me gusta)

en la ultimas versiones de AutoIt podrías hacer algo así:

$myFunction("hola","mundo")


Saludos
No conocía esa característica de las nuevas versiones, no uso mucho AutoIt así que me quedé en la 3.3.8.1.
 #487286  por SadFud
 
Buenas UDFs