Apelarea functiilor

In lectia anterioara am invatat cum se creaza o functie dar aceasta nu este de niciun folos daca nu este apelata. Pentru a apela functii in AutoIt se pot folosi mai multe metode, fiecare cu particularitatile ei.

 

  1. Prin simpla scriere a numelui functiei si a parametrilor acesteia (daca este necesar).

In acest exemplu, in prima linie de cod se apeleaza functia Test() si se paseaza un string oarecare (functia Test() necesitand un parametru). Daca suntem interesati de rezultatul unei functii se procedeaza ca si in exemplul urmator.

  1. Folosind un HotKey, functiile se vor apela la apasarea unei taste sau a unui grup de taste. Sintaxa functiei HotKeySet este:

Nota: daca doua scripturi folosesc taste identice pentru a apela o functie, doar primul script va captura mesajul si implicit va apela functia.

O functie apelata in acest mod nu poate accepta argumente. Urmatoarele hot key-uri nu pot fi setate:

Ctrl+Alt+Del

Rezervat de Windows

F12

Rezervat de Windows

Tasta ENTER din partea numerica a tastaturii

Utilizati in schimb {ENTER}

Win+B,D,E,F,L,M,R,U; Win+Shift+M

Shortcut-uri pentru Windows

Alt, Ctrl, Shift, Win

Acestea sunt taste modificator

Altele

Alte hot key-uri de forma unor grupuri ale “tastelor de baza” de genul ‘{F1}{F2}‘ sau orice taste de forma ‘{LALT}‘ or ‘{ALTDOWN}‘.

Un exemplu folosind aceasta metoda de apelare a unei functii:

Nota: pentru a dezactiva un hot key folositi functia HotKeySet(“tasta”), fara a preciza functia.

 

  1. Folosind functia Call, se pot apela doar functii definite de programator (nu accepta functiile built-in sau functii plug-in). Functia Call are urmatoarea sintaxa:

Primul parametru fiind numele functiei care urmeaza sa fie apelata, iar daca functia apelata are parametri (nu este obligatoriu), restul parametrilor functiei Call vor fi parametrii functiei apelate.

Acest tip de apel nu permite pasarea parametrilor ByRef. Pentru a apela o functie care are ca parametru un vector, se foloseste o conventie: primul element al vectorului trebuie sa aiba valoarea “CallArgArray”, iar restul elementelor vor fi pasate functiei ca argumente separate. Daca se foloseste un astfel de vector, niciun alt parametru nu mai poate fi pasat functiei Call. Atat functia apelata cat si functia Call pot sa genereze un cod de eroare @error. Daca functia Call este cea care stabileste codul de eroare macro-ul @error va fi egal cu 0xDEAD si macro-ul @extended va fi egal cu 0xBEEF.

  1. Folosind AdlibRegister, cand vrem sa apelam o functie la un interval de timp stabilit (in milisecunde). Sintaxa functiei AdlibRegister este:

Functiile inregistrate cu AdlibRegister sunt apelate chiar daca scriptul principal este in pauza. De asemenea parametrul timp trebuie folosit cu grija pentru a preveni supraincarcarea CPU. O functie apelata folosind aceasta metoda nu accepta parametri.

In exemplul de mai sus este inregistrata functia ScrieDate() pentru a fi apelata la fiecare 5 secunde. Acest lucru se va face de 5 ori, pana cand variabila $contor = 5, cand se dezactiveaza apelarea functiei si se incheie executia scriptului.

 

Nota: pentru a dezactiva apelarea functiei la intervale de timp, cu AdlibRegister, apelati functia AdlibUnRegister(“NumeFunctie”).

 


* Pentru orice intrebari sau nelamuriri legate de curs sau limbajul AutoIt accesati sectiunea AutoIt a forumului SkullBox sau platforma de suport tehnic NetHelp.