AutoIt: dă-i comenzi


Acum câteva zile a apărut versiunea 3.3 a programului AutoIt. Mulţi au auzit probabil de acest program. Pentru ceilalţi: facilităţile lui sunt în principiu două. E cunoscut mai ales ca un program ce ajută la automatizarea unor sarcini. În mod clar nu e de folos oricui. Cei care folosesc intens calculatorul şi cu sarcini repetitive vor găsi însă în AutoIt un aliat important. Există însă şi o a doua clasă de public vizat: programatorii. Ceea ce mi-a plăcut la nebunie la AutoIt este că a introdus posibilitatea folosirii de interfeţe vizuale (GUI), ceea ce deschide chiar şi amatorilor posibilitatea de a scrie mici programe.

image

Eu am folosit AutoIt acum câţiva ani pentru a scrie câteva “programe”, precum cel ilustrat mai sus (descărcabil de aici). E vorba de ceva foarte banal. Există şi programe mai complexe, dar în mod cert AutoIt nu este pentru a scrie editoare grafice gen Adobe Photoshop sau pentru mai ştiu eu ce minunăţii. Pentru lucruri mai mici este însă excelent.

Dar haideţi să nu sărim în această zonă. Să rămânem la prima utilizare a lui: aceea de a automatiza nişte operaţiuni. Cu SciTE sau chiar şi cu Notepad, creaţi un fişier cu conţinutul de mai jos, salvându-l cu extensia au3. Evident presupunem că aveţi instalat AutoIt. Rularea fişierului va face… oare ce?

Run("e:\Microsoft Office\OFFICE12\WINWORD.EXE")
WinWaitActive("Microsoft Word")
Send("Ceva ^bfoarte important^b din clipboard.")
Send("{ENTER}")
Send(ClipGet())
Send("^s")
WinWaitActive("Save As")
Send("FoarteImportant.doc")
Send("{ENTER}")
WinClose("[CLASS:OpusApp]", "")

Haideţi să traducem pas cu pas: 1. Lansăm Word din MS Office (evident calea trebuie ajustată după caz). 2. Aşteptăm ca fereastra cu Word să fie activă. 3. Se simulează apăsarea unor taste, astfel că se va scrie „Ceva ” apoi se trece pe modul îngroşat, se scrie „foarte important” şi apoi restul. 4. Se trimite un ENTER. 5. Apoi se „lipeşte” (paste) ceea ce e în clipboard. 6. Se simulează apăsarea combinaţiei CTRL-S (salvare). 7. Aşteptăm să fie activă fereastra pentru salvare. 8. Scriem numele fişierului. 9. Se trimite un ENTER. 10. Închidem fereastra.

Adică ce am realizat? Să presupunem că avem un text în clipboard. Apelând „programul” tocmai creat cu AutoIt, se va lansa Word-ul, se va scrie ceva în el şi apoi se va pune conţinutul din clipboard, după care fişierul rezultat va fi salvat şi Word-ul închis. Totul automat, fără să mai trebuiască să interacţionăm noi în vreun moment. Acesta este un exemplu teoretic (de fapt am vrut să fac ceva mai complex decât exemplul cu Notepad oferit de documentaţia AutoIt). E un scurt cod, de 10 linii. Evident trebuie studiată fiecare comandă, dar lucrurile sunt uşor de intuit. Evident WinWaitActive aşteaptă ca fereastra indicată ca parametru să fie activă. Evident Send trimite via tastatură ceea ce e dat ca parametru. Puţin de lucru este cu identificarea obiectelor, pentru care AutoIt pune la dispoziţie programul Au3Info.exe. Cu acesta lansat puteţi afla numele sau clasa unei ferestre, verifica dacă de exemplu e un mesaj cu butoane Yes/No ş.a. Nimeni nu spune că e foarte uşor, dar cu AutoIt i-a desigur mai puţin timp decât să faci manual un proces repetitiv.

Bun. În acest moment aţi prins probabil ideea: AutoIt poate să controleze ce se lansează, să simuleze apăsarea de taste şi de mouse… E minunat, dar practic? Pentru ca AutoIt să fie practic pentru Dvs trebuie ca… Dvs să identificaţi operaţiunile repetitive unde v-ar putea ajuta. Un exemplu folosit şi de documentaţia AutoIt: instalarea repetată a unor programe. Să zicem că sunteţi inginer de sistem şi aveţi de instalat un anumit program pe 30 de calculatoare. Fiecare instalare presupune lansarea lui setup.exe, click pe Next, click pe Next, bifarea căsuţei 2 şi 3, click pe Next, scrierea unui serial number, click pe Next, click pe Finish (exemplu fictiv). Cine nu s-ar sătura să facă aceşti paşi de 30 de ori??? Puteţi scrie un script AutoIt3 care să facă aceşti paşi. Când mergeţi la un alt calculator (nu, nu trebuie să instalaţi AutoIt3) mergeţi cu programul de instalat şi cu scriptul (compilat ca exe). Lansaţi scriptul şi va face el instalarea, pas cu pas, conform indicaţiilor, în locul Dvs. Aaaa! Altă viaţă, nu? Acesta e doar un exemplu.

PS: Când am pornit CNet.ro ca blog pusesem o rubrică Programare, unde mă gândeam că voi pune scripturi cu AutoIt şi alte lucruri legate de programare (de exemplu AutoHotkey este tot în familie). Am renunţat la ea. Poate dacă ar mai fi pasionaţi de programare (fie şi din familiile C, Basic sau altele) dornici de colaborare, am putea face o astfel de rubrică. Oricum, eu îmi propun să mai scriu câte ceva despre AutoIt, cel puţin în zilele următoare.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (6 evaluări, media: 5,00 din 5)
Loading...Loading...

8 comentarii

  1. Roman spune:

    AutoIt merită atenţie!
    Eu îl folosesc încă de la versiunea a doua. Acum că a evoluat şi că a devenit şi mai atractiv, este o adevărată descoperire pentru programatorii începători.
    PS: Eu sunt pentru astfel de articole ce ţin de programare. Baftă!

  2. Computerică spune:

    Si mie imi place aceasta aplicatie si o consider foarte utila.

  3. Tony spune:

    Eu am facut programare in facultate folosind Turbo Pascal si chiar imi placea. As dori sa pot continua la un nivel mai avansat. De fapt am lucrat si in C++ dar AutoIt este nou pentru mine. Este foarte bine sa continuati cu aceasta rubrica de PROGRAMARE. Oare cand as putea si eu sa imi fac propriul meu site. Ma pasioneaza foarte mult Astronomia – apropo anul 2009 va fi ANUL ASTRONOMIEI – si mai sunt pasionat de calculatoare si de matematica. Cred ca folosind informatiile furnizate de domnul Radu pe acest site as reusi in curand.
    Multumim Domnule Radu pentru articolele deosebite pe care ni le serviti. Domnul sa va binecuvanteze.
    La multi ani!

  4. Andrei spune:

    Sunt un mare fan Autoit si ma bucur sa vad ca mai sunt romani care il folosesc. In „vacanta” asta de sarbatori am scris 2 programele in el, unul de inchis calculatorul si unul de mesaje subliminale. Le puteti descarca gratuit de (click) aici.

  5. andrei spune:

    Salutare.
    Am incercat si eu astazi AutoIT3, incepand desigur cu exemplele lor… si am avut neplacuta surpriza sa constat ca nu functioneaza comanda „Send”. M’am invartit, am cautat pe forumuri, dar nu am gasit/inteles motivul… Any ideas? Mersi mult.

  6. radu.capan spune:

    Eu nu pot spune decât că… merge (comanda). Nu e deci o problemă AutoIT3 ci poate o problemă locală.

  7. andrei spune:

    Cu siguranta este o problema locala, deoarece pe calculator la colegii mei functioneaza ok (de pilda, exemplul cu notepad: la mine se deschide un document nou, dar nu scrie nimic in el). Sistemul de operare e acelasi (winXP cu sp3) …. am incercat sa deconectez tastatura (un gest disperat) – nici asa n’a mers :(

  8. andrei spune:

    Hehe…. tocmai l’am facut sa mearga. Guess what: aveam alt program deschis – o aplicatie desktop pe care o tin deschisa cam toata ziua, si care (din motive anti-hack) blocheaza functia sendkey :) deindata ce am inchis programul respectiv, scripturile AutoIt cu Send() merg struna !
    Sorry pentru deranj, o zi faina :)


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *