Desertui – AutoIt
Parašė: Tadas, 2008-07-28 | Keisti
Kategorijose: Kodas, Programavimas
AutoIt – tai
nemokama (bet ne atviro kodo) programavimo kalba, skirta automatizuoti
ir palengvinti įvairius veiksmus “Windows” operacinėse sistemose.
Pirmoji versija (išleista 1999 metų sausį) galėjo tik simuliuoti klavišų
paspaudimus, bet 3 versija (išleista 2004 metų vasarį) turi visas
programavimo kalbai būdingas savybes. Kodą galima sukompiliuoti į
suspaustą exe failą, kuriam paleisti kituose kompiuteriuose nereikia
interpretatoriaus. Paprastas “Windows” aplinkos valdymas, TCP/UDP
protokolų palaikymas, galimybė dirbti su Win32 DLLais, kodo bibliotekos
ir žinoma paprasta sintaksė daro šią kalbą verta dėmesio.
Parsisiuntus
pilną AutoIt instaliaciją gaunate pilnai paruoštą aplinką
programavimui. Praktiškai iškart galima rašyti programas naudojantis
pateiktais pavyzdžiais, manualu ir patirtimi iš kitų kalbų (jei tokia
yra), bet jei kyla neaiškumų, AutoIt forumas yra ta
vieta, į kurią turėtumėt keliauti pirma. Bendruomenė yra nemaža ir
aktyvi, todėl greičiausiai iškilę klausimai jau bus atsakyti.
Su AutoIt ypač paprasta kurti GUI. Paprastas pavyzdys, kad geriau suprastume sintaksę:
#include <GuiConstants.au3>
GUICreate('GUI', 170, 100)
;pirmas skaičius nurodo atitraukimą nuo kairės, antras - nuo viršaus, trečias - elemento ilgį
GUICtrlCreateLabel('Įvesk tekstą ir spausk mygtuką', 10, 10)
$input=GUICtrlCreateInput('', 10, 30, 100)
$button=GUICtrlCreateButton('Go!', 10, 60)
;padaro langą matomą vartotojui
GuiSetState()
While 1
$msg=GuiGetMsg()
If $msg=$GUI_EVENT_CLOSE Then Exit
If $msg=$button Then Msgbox(0,'Tekstas', 'Tu suvedei tokį tekstą: '&GUICtrlRead($input))
WEnd
Įvykdytas šis kodas atrodys taip:

Manau kodo analizės nereikia – kiekvienam, turinčiam bent minimalią programavimo patirtį, viskas turėtų būti aišku.
Na gerai, o kaip su minėtu “Windows” valdymu? Dar paprasčiau.
run('notepad.exe')
WinWaitActive('Untitled - Notepad')
Send('O hai.{ENTER}Just testing.')

Šios trys eilutės atidarys Notepadą ir suves į jį nurodytą tekstą. Visa
tai gražu, bet pabandykime sukurti kažką naudingesnio, kad geriau
suprastume AutoIt potencialą.
;F10 klavišų kombinacijai priskiriame funkciją write()
HotKeySet('{F10}', 'write')
Func write()
;ClipGet() funkcija grąžina clipboardo turinį
$clipboard=ClipGet()
;taip tikrinama, ar funkcija negrąžino erroro. Manuale aprašyta, kokias @error reikšmes kiekviena funkcija grąžina nesėkmės atveju.
if @error Then
MsgBox(0, 'Error', 'Arba tuščia, arba ne tekstas')
Else
;129 kombinacija gauta sudėjus 128 (UTF8) ir 1 (write mode)
$handle=FileOpen('quotes.txt', 129)
;įrašoma viena eilutė. Vietoj $handle galima nurodyti failo vardą (nereikia FileOpen ir FileClose), bet tada nebus UTF8 palaikymo
FileWriteLine($handle, $clipboard)
FileClose($handle)
MsgBox(0, 'Done!', 'Citata išsaugota')
;endif būtinas, jei if sąlygai priklauso daugiau nei viena eilutė
EndIf
EndFunc
;amžinas ciklas reikalingas, kad programa tik startavus nebaigtų darbo. Taip pat galima naudoti sleep([laikas milisekundėmis])
While 1
WEnd
Štai parašėme paprastą įrankį citatų rinkimui. Pažymėkite tekstą bet kur, nukopijuokite jį, spauskite F10 ir jis jau išsaugotas quotes.txt.
AutoIt nėra ta kalba, kurią rašytum į savo CV, bet ji tikrai naudingas įrankis paprastoms užduotims, dėl kurių nesinorėtų prasidėti su JAVA, C(++), etc.
Alternatyvos
http://en.wikipedia.org/wiki/AutoHotkey