• Fuentes

 #487280  por Blau
 01 Jul 2016, 20:14
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
 01 Jul 2016, 21:15
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
 01 Jul 2016, 21:26
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
 01 Jul 2016, 22:18
Buenas UDFs