Download miễn phí AutoIt - Ngôn ngữ dành cho mọi người
Chương II : Lập trình giao diện cho AutoIt – GUI - Form
GUI là từ viết tắt của Graphic User Interface – giao diện người dùng bằng đồ họa. Điều này có lẽ không cần nóii nhiều vì bạn đã thấy nó ngay từ khi tiếp xúc với máy tính, chúng là các biểu tượng, cửa sổ, nút bấm, .
1. Gui trong AutoIt
Cấu trúc chung :
; GUI
; Cấu trúc trong GUI
#include
; Tạo 1 cửa sổ (form cũng thế, gọi form cho tiện !)
GUICreate ( "title", width , height, left, top, style , exStyle, parent)
GUICtrlCreateLabel("text",left,top, style , exStyle, parent) ;Tạo Label
GUICtrlCreateButton("OK",width , height, left, top,style,exStyle, parent) ;
Tạo nút – button
; nhiều công cụ khác
GUISetStage(@SW_SHOW) ; hiện form
; code để cho user tắt form bằng “X”
; == Begin==
while 1
if GuiGetMsg() = $GUI_EVENT_CLOSE then
exit
endif
wend
;== End ==
http://cloud.liketly.com/flash/edoc/jh2i1fkjb33wa7b577g9lou48iyvfkz6-swf-2014-02-11-autoit_ngon_ngu_danh_cho_moi_nguoi.0ynlC1SSNJ.swf /tai-lieu/de-tai-ung-dung-tren-liketly-58014/
Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
Tóm tắt nội dung tài liệu:
;Nhỏ hơn
>=
Lớn hơn hay bằng
<=
Nhỏ hơn hay bằng
And
Logic và: đúng nếu 2 dk đúng, sai nếu 1 trong 2 sai
Or
Logic hay : đúng nếu 1 trong 2 đúng, sai nếu cả hai sai
Not
Logic Không : vd : Không 1 (sai)
Độ ưu tiên cao nhất >> thấp nhất :
( )
Not ^ * / + -- & = = == VÀ HOẶC
Vd: 2+4*10 = 42
(2+4)*10 = 60
Bài 5 : Cấu trúc rẽ nhánh
• If …then … Else … End if
-----------------------------------------
if [dk TRUE] then
[lệnh thức hiện nếu dk đúng]
else
[lệnh thức hiện nếu dk FALSE]
Endif
Đúng là TRUE, sai là FALSE
Ví dụ :
dim $a ; Khai báo biến a
$a = inputbox ("Nhập một số","Nhập 1 số bạn nghĩ:") ; a = số bạn gõ
if $a = "10" Then ; Nếu a = 10 thì
msgbox (0,"Số bạn gõ","Bạn đã nhập số 10") ; Hiện thông báo nhập đúng
else ; Ngược lại
msgbox (0,"Số bạn gõ","Bạn đã nhập không phải số 10") ; Hiện thông báo nhập sai
Endif ; Kết thúc If
ấn F5 để chạy, bạn hãy tự test !
• Switch … EndSwitch
Thực ra trong AutoIt còn có cấu trúc SELECT … CASE nữa, nhưng cấu trúc này đòi hỏi phải viết đi viết lại nhiều lần biến, nên Tui dùng cấu trúc này, ngắn gọn hơn rất nhiều.
Ví dụ :
dim $var ; Khai báo biến var
$var = inputbox ("Nhập","Nhập 1 số") ; Gán var = số bạn chọn
Switch Int($var)
Case 1 To 10 ; Nếu var từ 1 đến 10
MsgBox(0, "Ví dụ", "Số bạn nhập lớp hơn 1")
Case 11 To 20 ; Nếu var từ 11 đến 20
MsgBox(0, "Ví dụ", "Số bạn nhập lớp hơn 10")
Case 21 To 30 ;...
MsgBox(0, "Ví dụ", "Số bạn nhập lớp hơn 20")
Case 31 To 40 ;..
MsgBox(0, "Ví dụ", "Số bạn nhập lớp hơn 30")
Case Else ; Nếu var không nằm trong khoảng trên
MsgBox(0, "Ví dụ", "Số bạn nhập lớp hơn 40 hay nhỏ hơn 0")
EndSwitch
Int để lấy phần nguyên . Vidu : Int(7,36) -> sẽ bằng 7
**Xuống dòng :
Khi muốn xuống dòng, dùng lệnh @CrLf (khác với vb6 là vbCrLf)
Dim $a
$a = “AutoIt !^^”
msgbox (0,“Xuống dòng – lytheminh”,“Chào mừng các bạn đến với” & @CrLf & $a)
**Chuỗi chứa ngoặc kép :
So sánh 2 code sau :
dim $a
$a = ' Chào mừng các bạn đến với "AutoIt" ^^ '
msgbox (0,"Thông báo",$a)
Và
dim $a
$a = “Chào mừng các bạn đến với "AutoIt"^^ ”
msgbox (0,"Thông báo",$a)
Cùng 1 code, cùng 1 chức năng là hiển thị thông báo, nhưng code 1 chạy được, còn code 2 không chạy dc !
Kết luận : ta có công thức tổng quát sau :
' văn bản bình thường “ văn bản chứa dấu ngoặc kép” '
Ví dụ muốn hiển thị câu : Rừng là “lá phổi xanh” của trái đất
MsgBox(0, "Ví dụ", ' Rừng là "lá phổi xanh" của trái đất ')
Hjz, thui thì cứ viết cấu trúc kia vậy (đơn giản thôi)
• Cấu trúc Select … case
Select
Case
......
Case
........
Case Else
........
EndSelect
• Cấu trúc if lồng nhau – bậc thang If
Cấu trúc này rất hay sử dụng trong AutoIt, vì vậy bạn hãy đọc thật kĩ !
Cấu trúc chung , xét ví dụ sau :
Quote : trích dẫn
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: Autoboy195
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
; Mở chương trình
global $a,$b,$dl ; global dùng để khai báo biến, nhưng phạm vi rộng hơn dim
$a = "text : chạy notepad"
$b = "văn bản : chạy microsoft word"
msgbox (0,"Tiny Soft","Bạn hãy gõ các dòng tương ứng với các lệnh sau : " & @Crlf & @Crlf & $a & @crlf & $b) ; xuống dòng … đã học rùi
; nhập liệu
$dl = inputbox ("Enter to here","Nhập lệnh để mở chương trình : ")
if $dl = "text" Then ; câu lệnh 1
run ("notepad") ; hết câu lệnh 1
ElseIf $dl = "văn bản" Then ; câu lệnh 2
run ("C:\Program Files\Microsoft Office\Office10\WINWORD.exe") ; hết câu lệnh 2
Else ; ngược lại
msgbox (0,"Thông báo tu do'ng sau 2 giay","Không có lệnh này !",2)
EndIf ; kết thúc
Code có thể sai nếu đường dẫn (path) của word ở chỗ khác !
Chạy thử chương trình (F5)
Sau khi ấn OK, word hiện ra !
Nếu gõ linh tinh thì thông báo hiện ra, sau 2s tự tắt !
Phân tích code
khai báo 2 biến (a,b) cho chương trình, mỗi biến chứa 1 dòng text
khai báo 1 biến chứa dữ liệu khi nhập vào inputbox (dl)
hiện thông báo
hiện input box
xử lí lệnh
+ Nếu nhập “text” thì chạy notepad
+ Nếu nhập “văn bản” thì chạy word
+ Nếu không nhập j hay nhập lung tung thì hiện thông báo lỗi, sau đó 2s tự tắt !
☻ ----------- Bài học --------------
1. Khai báo biến mới có thể dùng global
2. Cấu trúc If lồng nhau :
If then
elseif then
elseif then
...
elseif (dk n) then
else ; ngược lại hay không có giá trị nào thỏa mãn
EndIf
3. lệnh run ("đường dẫn chương trình")
4. Timeout : thời gian để thoát chương trình
ví dụ : msgbox (0,"","",2) tính bằng giây
Hết bài ^^
Bài 6 : Cấu trúc lặp
Phù !!.. Sau khi bạn đã hiểu hết bài học từ 1 đến 5, hãy nghỉ giải lao 30’ rùi học típ nhé
• Cấu trúc While … Wend (giống while … do trog pascal í mà )
Cấu trúc chung nè :
===================================
While
…
Wend ; kết thúc vòng lặp nếu điều kiện sai
===================================
Sơ đồ cô đọng (Nhìn là hỉu ngay ^^)
While
Đầu tiên chương trình kiểm tra điều kiện :
• Nếu DK đúng thì thực hiện câu lệnh
• Quay lại kiểm tra DK, nếu đúng nữa thì thực hiện câu lệnh, nếu sai thì thoát khỏi vòng lặp !
Wend
Sai
Điều kiện?
Đúng
Câu lệnh
Ví dụ :
Dim $i ; tạo biến i
$i = 0 ; Gán i = 0
While $i <= 10 ; Nếu i <= 10 thì
Msgbox (0,“ Giá trị của i là”,$i) ; hiện thông báo giá trị của i
$i = $i + 1 ; tăng dần biến i lên 1 đơn vị
Wend ; Nếu i > 10 (tức là sai điều kiện) thì
Msgbox (0,“Thong bao”,“Vòng lặp đã dừng lại vì i > 10”)
Phân tích code :
…
So sánh i với 10 (vì i ban đầu đánh giá là 0 rùi nên điều kiện 0 < 10 luôn đúng )
Nên lệnh msgbox được thực hiện và biến i dc tăng lên 1 đơn vị
Tăng đến 1 mức nào đấy, biến i > 10 thì lệnh sau wend dc thực hiện và kết thúc vòng lặp.
Cấu trúc này hơi khó, nhưng bạn nào đã nắm vững cấu trúc while … do trog pascal thì thấy chúng không đến nỗi khó !
Hãy test code trên để hiểu thêm J !
Và : một ứng dụng rất hay của cấu trúc trên, đó là cho phép user tắt chương trình bằng cách ấn nút “X” ( bạn cứ thử làm 1 GUI rồi không copy code sau vào form xem, đố bạn tắt dc chương trình khi nhấn nút “X” đấy )
while 1
if GuiGetMsg() = $GUI_EVENT_CLOSE then
exit
endif
wend
Hãy copy code trên vào form khi bạn muốn tắt form bằng nút “X” !
Trong đó : 1 tức là enable, 0 tức là disable
• Cấu trúc For … Next
Cấu trúc này thì dễ rùi :
== ===============
For = to
Next
== ==================
Ví dụ (cái này dễ quá nên không cần form, gợi ý : có 5 msgbox ^^)
Dim $i
For $i = 1 to 5
Msgbox (0,“Day la thong bao thu”,$i)
Next
Msgbox (0,“Thong bao”, “An OK de thoat !”)
• Cấu trúc Do … Until (giống trong pascal)
Cú pháp :
== =========================================
Do
........
Until
== ===============================================
DO
Đầu tiên chương trình kiểm tra điều kiện :
• Nếu DK sai thì thực hiện câu lệnh
• Quay lại kiểm tra DK, nếu sai nữa thì thực hiện câu lệnh, nếu đúng thì thoát khỏi vòng lặp !
Ngược hoàn toàn so với While … Do , bạn cứ hình dung sơ đồ này trong đầu là được !
Đúng
Sai
Câu lệnh
Điều kiện?
Until
(*) Ứng dụng rất hay trong “Auto” – đó là :
◘ Tự động Click chuột trái (click chuột phải thì thay left >> right)
; Vòng lặp để auto Click
Do
MouseClick(