Profil de JurajYuraj's BlogPhotosBlogListesPlus Outils Aide

Blog


13 mai

6. Vytvárame jednoduché GUI (okno) v AutoIt-e

Teraz si ukážeme ako jednoducho sa dá vytvoriť okno v AutoIt-e. Existuje mnoho už predefinovaných funkcií na vytváranie najbežnejších ovládacích prvkov. Síce existujú rôzne designeri okien (vôbec najznámejší Koda Form Designer, ukážka , existuje doň aj čeština), ktoré vám automatický vygenerujú kód.

jednoduche_okno

Tu je kód (+podrobne okomentovaný):


  1. ; Zahrn subor, jeden zo zaklad. pri praci s GUI,
  2. ; obsahuje konstanty ako napr. $GUI_EVENT_CLOSE ....
  3. #include <GUIConstants.au3>
  4.  
  5. GUICreate("Ahoj svet!",350,300) ; Vytvor okno s titulkom "Ahoj svet!" a s velkostou 350x300
  6. $tlacidlo1 = GUICtrlCreateButton("Klik!",120,130,100) ; Vytvori tlacidlo s titulkom, potom X a Y pozicia a sirka...
  7. $vstup1 = GUICtrlCreateInput("Blaaa",100,100,150,20) ; Vytvori pole pre vstup textu,Predvoleny text,X,Y,sirka,vyska
  8. GUISetState() ; Zobraz okno, automaticky pouzije @SW_SHOW makro
  9.  
  10. ; Slucka, v ktorej sa bude udrziavat tok programu,
  11. ; cize ak by tu nebola slucka, tak by sa ihned okno zatvorilo
  12.     ; Odchyt spravy/udalosi okna
  13.     $msg = GUIGetMsg() ; Taktiez sposobi, ze program nezamrza v slucke
  14.     Switch $msg
  15.         Case $GUI_EVENT_CLOSE  ; Udalost, ked okno uzivatel zatvara
  16.             Exit ; Jednoducho ukonc program
  17.         Case $tlacidlo1 ; Udalost, ked sa stlaci tlacidlo1
  18.             $text = GUICtrlRead($vstup1) ; Nacita data/stav ovlad. prvku, v nasom pripade text upravovacieho pola
  19.             MsgBox(64,"Ahoj svet!","Stla&#269;il si tla&#269;idlo!" & @LF & "A zadal si ešte k tomu: " & $text)
  20.     EndSwitch

5. Niektoré funkcie v AutoIt-e

  1. ; Zisti aktualny text v schranke
  2. $schranka = ClipGet()
  3. MsgBox(0, "Schránka obsahuje:", $schranka)
  4.  
  5. ; Zapise text do schranky
  6. ClipPut("Nejaky ten text..")
  7. ; Opet vypise aktualny obsah schranky, obsah = vid. vyssie
  8. MsgBox(0, "Schránka obsahuje:", ClipGet())

  1. ; Zisti informacie o pameti, vrati vo forme pola:
  2. ; Jednotlive indexi:
  3. ;[0] = V % vyuzitie pamete
  4. ;[1] = Celkovo fyzickej RAM
  5. ;[2] = K dispozicii fyz. RAM
  6. ;[3] = Celkovo strankovanie
  7. ;[4] = K dispozicii strankovanie
  8. ;[5] = Celkovo virtualna
  9. ;[6] = K dispozicii virtualna
  10. ; Velkosti su v kilobytoch
  11.  
  12. $mem = MemGetStats()
  13. MsgBox(0, "Celkovo fyzickej RAM (KB):", $mem[1])

  1. ; Zo sys. repracika vyda zvuk
  2. ; Taktiez moznost nastavit [ Frekvenciu[, Trvanie(ms)]]
  3. ; Zvuk frekvencie 500Hz dlzky 2 sekund
  4. Beep(500, 2000)

  1. ; Prehra zvukovy subor: "subor" [, pockat(0 - pokracovat v skripte, ked sa prehrava,1 - pockat pokym sa pesnicka neprehra)]
  2. ; Ak sa nachadza vo Windows priecinku Media zvuk tada.wav, tak ho prehra
  3. SoundPlay(@WindowsDir & "\media\tada.wav",1)
  4. ; Ak date prazdny parameter za subor, tak vlastne zastavite prehravanu pesnicku
  5. ; Zmena hlasitosti wave v systeme (v %, cislo medzi 0 - 100)
  6. SoundSetWaveVolume(50) ; Napriklad na 50%
  7.  

  1. ; Simuluje stlacenie klavies do aktualneho okna:  "klavesy" [, typ]
  2. ; Tabulku klavies najdete v navode
  3. ; Win+R = dialog spustit
  4. Send("#r")
  5. ; Zopar klavies:
  6. ; # = klavesa 'Windows'
  7. ; ! - Klavesa Alt
  8. ; + - Klavesa Shift
  9. ; ^ - Klavesa Ctrl
  10. ; {SPACE} - Medzernik
  11. ; {ENTER} - Enter
  12. ; Poznamka: Mozete samozrejme posielat aj text, nielen specialne klavesy...
  13.  
  14. ; Nastavenie glob. klavesovej skratky, ktora zavola urcitu funkciu: "klavesy-rovnaky format ako send" [, "funkcia"]
  15. HotKeySet("{ESC}","Ukoncit")
  16.  
  17. Func Ukoncit()
  18.   Exit ; ukonci program

  1. ; Pauzne skript na urcitu dobu v milisekundach:
  2. Sleep(5000) ; Na 5 sekund
  3.  
  4. ; Zobrazi spravu: typ, "titulok", "text" [, timeout [, hwnd]]
  5. ; Vrati ID stlaceneho gombika (OK = 1,Zrusit = 2 ... viac info v navode)
  6. ; Typ: IKONKY 0 - ziadna ikonka, 16 - ikonka chyba, 32 - ikonka otazka, 48 - ikonka upozornenie, 64 - ikonka info
  7. ; GOMBIKY: 0 - OK, 1 - Ok a Zrusit atd...
  8. MsgBox(0,"Nieco","Toto je sprava!")
  9. ; Zlozitejsia sprava (48 - ikonka s vykricnikom + gombiky Ano a nie)
  10. $hodnota = MsgBox(48 + 4,"Dokument","Chcete ulozit tento subor?")
  11. If $hodnota == 6 Then
  12.  ; Ak stlacil gombik ANO
  13.  ; Ak stlacil gombik NIE
  14.  
  15. ; Zobrazi okno, ktore ziada uzivatela zadanie urcitej hodnoty: "titulok", "text poziadavky" [, "predvolena hodnota" [, "znak hesla" [, sirka, vyska[, x, y[, timeOut [, hwnd]]]]]]
  16. $odpoved = InputBox("Titulok","Ako sa volas?")
  17. If Not @error Then ; Kontrola ci nenastala chyba (cize ked napr. stlacil zrusit alebo nic nezadal)
  18.  MsgBox(0,"Meno","Ahoj " & $odpoved & "!")
  19.  MsgBox(0,"Meno","Skoda...") ; ak uzivatel nezadal nic
  20.  

Toto je len veľmi málo funkcíí z AutoIt-u. Viac nájdete v návode…