SlideShare a Scribd company logo
1 of 43
Download to read offline
AutoIt
Jellydn – Lớp 06T1 – Khoa CNTT
Đai học Bách Khoa Đà Nẵng
Nội dung
n Giới thiệu về AutoIt
n Các ví dụ mở đầu
n Cú pháp
n Một số thủ thuật
n GUI và xử lý sự kiện
n Lời kết
Giới thiệu về AutoIt
n AutoIt
n Là một ngôn ngữ script
n Giúp NSD giả lập tự động:
n Phím
n Kích chuột
n Tương tác với chương trình,file khác của máy tính.
n Có cấu trúc tựa BASIC
n Đơn giản , dễ học
n Nhỏ gọn
n Miễn phí
n Tips: nên gõ và thực thi lại các ví dụ khi học !!!
n Tải tại và cài đặt AutoIt tại địa chỉ
http://www.autoitscript.com/autoit3/
Các ví dụ mở đầu
n HelloWorld
n Chuột phải ngoài desktop -> new ->
AutoIt v3 Script
Các ví dụ mở đầu
n HelloWorld
n Đặt tên là helloworld.au3
Các ví dụ mở đầu
n HelloWorld
n Chuột phải lên file vừa tạo -> Edit Script
Các ví dụ mở đầu
n HelloWorld
n SciTE sẽ được mở
Các ví dụ mở đầu
n HelloWorld
n Bạn thêm vào cuối file helloworld.au3
n MsgBox(0, "Tutorial", "Hello World!")
n Save
n Kiểm tra cú pháp :Tool->SyntaxCheck Prod
n Nhấn F5 (Tool -> Go)
n Kết quả
Các ví dụ mở đầu
n Tương tác với notepad
n Tạo file note.au3 như ví dụ trên
n Vào Start -> Run : gõ notepad
n Mở công cụ : AutoIt Window Info
n Vào Start->Programs->AutoIt v3->AutoIt
Window Info
n Dùng để lấy thông tin của một cửa sổ ứng
dụng
Các ví dụ mở đầu
n Tương tác với notepad
n Kích chuột vào của sổ notepad sẽ được
thông tin về title
Các ví dụ mở đầu
n Tương tác với notepad
n Thêm vào cuối file note.au3
n Run("notepad.exe")
n ; lệnh run sẽ gọi file notepad.exe
n WinWaitActive("Untitled - Notepad")
n ; đợi tới khi của sổ notepad kích hoạt(active)
n ; title : Untitled - Notepad
n Send("This is some text.")
n ; gởi dòng text tới notepad
Các ví dụ mở đầu
n Tương tác với notepad
n Chạy thử file ( Tool->Go hoặc F5)
n Kết quả
Các ví dụ mở đầu
n Tương tác với notepad
n Tiếp tục thêm vào cuối file note.au3
n WinClose("Untitled - Notepad")
n ;tắt notepad với title:Untitled – Notepad
Các ví dụ mở đầu
n Tương tác với notepad
n Khi tắt sẽ gặp thông báo -> lấy title
Các ví dụ mở đầu
n Tương tác với notepad
n Tiếp tục thêm vào cuối file note.au3
n WinWaitActive("Notepad", "Do you want to
save")
n ;đợi thông báo tắt xuất hiện
n Send("!n")
n ; !n=Alt+N -> phím tắt của No trong lựa chọn thoát
n Save và thực thi (F5)
Cú pháp
n Kiểu dữ liệu
n AutoIt chỉ 1 kiểu dữ liệu gọi là Variant
n Nó có thể chứa số hay chuỗi kí tự
n Tùy thuộc vào lúc xử lý
n Gồm những loại dữ liệu sau:
n Int32
n Int64
n Double
n String
n Binary
n Pointer
Cú pháp
n Biến
n Định danh:
n Bắt đầu với $
n Gồm chữ , số và _
n Ví dụ : $myvar , $my_var
n Khai báo:
n Dim
n Ví dụ : Dim $var1
n Local
n Global
n Có thể không khai báo mà sử dụng trực tiếp
n Ví dụ: $var1 = "create and assign"
Cú pháp
n Biến
n Hằng
n Dùng từ khóa const
n Const $const1 = 1, $const2=12
n Phạm vi hoạt động
n Global
n Sử dụng toàn chương trình
n Từ lúc khai báo
n Local
n Chỉ trong hàm
n Hủy khi hàm kết thúc
Cú pháp
n Biến
n Mảng
n Truy cập phần tử qua chỉ số
n $Array[0]="A”
n Trong 1 mảng có thể chứa nhiều loại dữ liệu
n $Array[0]=1
$Array[1]=true
$Array[2]="Text"
$Array[3]=$AnotherArray
n Điều này không bị cấm nhưng không nên dùng
Cú pháp
n Macros
n Là những biến chỉ đọc
n Đặt bởi AutoIt
n Tên của macro bắt đầu với @
n Không thể gán giá trị cho macro
Cú pháp
n Toán tử
n Số học
n =,+=,-=,*=,/=,&=,+,-,*,/,&,^
n & : nối 2 chuỗi
n ^ : mũ
n Logic
n AND , OR , NOT
n So sánh
n =,==,<,<=,>,>=,<>
n = : so sánh 2 số
n == : so sánh 2 chuỗi
n <> : khác
Cú pháp
n Câu điều kiện
n If...Then...Else
n $var = 20
If $var > 10 Then
MsgBox(0, "Example", "$var was greater
than 10!")
Else
MsgBox(0, "Example", "$var was less than
10")
EndIf
Cú pháp
n Câu điều kiện
• Select...Case
n $var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "Example", "$var was greater than 1")
Case $var > 10 AND $var <= 20
MsgBox(0, "Example", "$var was greater than 10")
Case $var > 20 AND $var <= 30
MsgBox(0, "Example", "$var was greater than 20")
Case $var > 30 AND $var <= 40
MsgBox(0, "Example", "$var was greater than 30")
Case $var > 40
MsgBox(0, "Example", "$var was greater than 40")
EndSelect
Cú pháp
n Câu điều kiện
• Switch...Case
n $var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "Example", "$var was greater than 1")
Case 11 To 20
MsgBox(0, "Example", "$var was greater than 10")
Case 21 To 30
MsgBox(0, "Example", "$var was greater than 20")
Case 31 To 40
MsgBox(0, "Example", "$var was greater than 30")
Case Else
MsgBox(0, "Example", "$var was greater than 40 or less or equal to 0")
EndSwitch
Cú pháp
n Vòng lặp
n For...To...Step...Next
n For <variable> = <start> To <stop> [Step <stepval>]
statements
...
Next
n Ví dụ:
n For $i = 5 to 1 Step -1
MsgBox(0, "Count down!", $i)
Next
MsgBox(0,"", "Blast Off!")
Vòng lặp cho phép
chạy trong nó
vòng lặp for khác
Cú pháp
n Vòng lặp
n While...WEnd
n While <expression>
statements
...
WEnd
n Ví dụ:
n $i = 0
While $i <= 10
MsgBox(0, "Value of $i is:", $i)
$i = $i + 1
WEnd !")
Vòng lặp cho phép
chạy trong nó
vòng lặp While
khác
Cú pháp
n Vòng lặp
n Do...Until
n Do
statements
...
Until <expression>
n Ví dụ:
n $i = 0
Do
MsgBox(0, "Value of $i is:", $i)
$i = $i + 1
Until $i = 10
Vòng lặp cho phép
chạy trong nó
vòng lặp Do Until
khác
Cú pháp
n Vòng lặp
n With...EndWith
n With <expression>
statements
...
EndWith
n Ví dụ:
n $oExcel = ObjCreate("Excel.Application")
$oExcel.visible =1
$oExcel.workbooks.add
With $oExcel.activesheet
.cells(2,2).value = 1
.range("A1:B2").clear
EndWith
$oExcel.quit
Vòng lặp không
cho phép chạy
trong nó vòng lặp
With khác
Cú pháp
n Vòng lặp
n For...In...Next
n For <$Variable> In <expression>
statements
...
Next
n Chỉ làm việc với mảng hay tập đối tượng
Vòng lặp cho phép
chạy trong nó
vòng lặp For khác
Cú pháp
n Vòng lặp
n For...In...Next
n ;Using an Array
Dim $aArray[4]
$aArray[0]="a"
$aArray[1]=0
$aArray[2]=1.3434
$aArray[3]="test"
$string = ""
FOR $element IN $aArray
$string = $string & $element & @CRLF
NEXT
Msgbox(0,"For..IN Arraytest","Result is: " & @CRLF & $string)
;Using an Object Collection
$oShell = ObjCreate("shell.application")
$oShellWindows=$oShell.windows
if Isobj($oShellWindows) then
$string=""
for $Window in $oShellWindows
$String = $String & $Window.LocationName & @CRLF
next
msgbox(0,"","You have the following windows open:" & @CRLF & $String)
else
msgbox(0,"","you have no open shell windows.")
endif
Cú pháp
n Hàm
n Định danh : giống như biến
n Func functioname ( [Const] [ByRef] $param1, ..., [Const] [ByRef] $paramN,
$optionalpar1 = value, ...)
...
[Return [value]]
EndFunc
n Ví dụ:
n $val = 10
For $i = 1 To 10
$doubled = MyDouble($val)
MsgBox(0, "", $val & " doubled is " & $doubled)
$val = $doubled
Next
Exit
Func MyDouble($value)
$value = $value * 2
Return $value
EndFunc
Một số thủ thuật
n Ẩn icon của AutoIt dưới khay hệ thống
n Thêm #NoTrayIcon vào đầu file
n Thực thi AutoIt trên Vista
n Vista yêu cầu “quyền” trước khi thực thi
n Thêm #RequireAdmin vào đầu file
GUI và lập trình sự kiện
n GUI(Graphical User Interfaces)
n AutoIT cho phép bạn dễ dàng tạo các control
n Các control thường dùng:
n Label : tên nhãn
n Button : nút bấm
n Input : hộp text nhập 1 dòng
n Edit : hộp text nhiều dòng
n Checkbox,Radio
n Combo,List
n Date
n Pic , Icon
n Progress : thanh loading
n Menu,ContextMenu
n Slider
GUI và lập trình sự kiện
n Các hàm GUI
n GUICreate() : tạo cửa sổ làm việc
n GUICtrlCreate…() : tạo các control tương ứng
n GUISetState() : hiện hay ẩn cửa sổ
n GUIGetMsg() : lấy thông tin về cửa sổ
n GUICtrlRead() : đọc dữ liệu từ control
n GUICtrlSetData() : ghi dữ liệu vào control
n GUICtrlSet…(): ghi dữ liệu vào một số thuộc tính
khác ( màu sắc , font chữ,…)
GUI và lập trình sự kiện
n GUI(Graphical User Interfaces)
n HelloGUI.au3
n #include <GUIConstantsEx.au3>
;Tao cua so 200x100 voi ten la Hello World
n GUICreate("Hello World", 200, 100)
;Tao label va button
n GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
GUICtrlCreateButton("OK", 70, 50, 60)
;Hien cua so
n GUISetState(@SW_SHOW)
;doi 2s
n Sleep(2000)
GUI và lập trình sự kiện
n Lập trình sự kiện
n AutoIt có 2 chế độ
n MessageLoop
n Là mặc định của AutoIt
n Dùng hàm GUIGetMsg() để lấy sự kiện
n OnEvent
n Dùng hàm Opt("GUIOnEventMode", 1)
n Dùng hàm GUICtrlSetOnEvent() để tạo hành động
cho sự kiện
GUI và lập trình sự kiện
n Lập trình sự kiện
n MessageLoop
n GUIGetMsg() sẽ trả về 3 kiểu
n Không có sự kiện : trả về 0
n Sự kiện của control : trả về controlID
n Sự kiện của hệ thống : được khai báo trong GUIConstantsEx.au3
n $GUI_EVENT_CLOSE
$GUI_EVENT_MINIMIZE
$GUI_EVENT_RESTORE
$GUI_EVENT_MAXIMIZE
$GUI_EVENT_PRIMARYDOWN
$GUI_EVENT_PRIMARYUP
$GUI_EVENT_SECONDARYDOWN
$GUI_EVENT_SECONDARYUP
$GUI_EVENT_MOUSEMOVE
$GUI_EVENT_RESIZED
$GUI_EVENT_DROPPED
GUI và lập trình sự kiện
n Lập trình sự kiện
n MessageLoop
n Ví dụ đơn giản:
n #include <GUIConstantsEx.au3>
GUICreate("Hello World", 200, 100)
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $okbutton
MsgBox(0, "GUI Event", "You pressed OK!")
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
ExitLoop
EndSelect
WEnd
GUI và lập trình sự kiện
n Lập trình sự kiện
n MessageLoop
n GUIGetMsg(1)
n Trả về một mảng
n $array[0] = 0 hoặc Event ID hoặc Control ID
n $array[1] = cửa sổ đang xử lý
n $array[2] = control đang thực thi
n $array[3] = tọa độ X của cửa sổ
n $array[4] = tọa độ Y của cửa sổ
GUI và lập trình sự kiện
n Lập trình sự kiện
n MessageLoop
n #include <GUIConstantsEx.au3>
$mainwindow = GUICreate("Hello World", 200, 100)
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
$dummywindow = GUICreate("Dummy window for testing ", 200, 100)
GUISwitch($mainwindow)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg(1)
Select
Case $msg[0] = $okbutton
MsgBox(0, "GUI Event", "You pressed OK!")
Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $mainwindow
MsgBox(0, "GUI Event", "You clicked CLOSE on the main window!
Exiting...")
ExitLoop
EndSelect
WEnd
GUI và lập trình sự kiện
n Lập trình sự kiện
n OnEvent
n Thao tác với 2 loại sự kiện
n Sự kiện của control
n Sự kiện của hệ thống
n Dùng 2 hàm để tạo hành động cho sự kiện
n GUISetOnEvent()
n GUICtrlSetOnEvent()
n Không nên dùng cách này vì:
n Code dài và rờm rà
n Phải bật option (opt)
GUI và lập trình sự kiện
n Lập trình sự kiện
n OnEvent
n #include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
$mainwindow = GUICreate("Hello World", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton, "OKButton")
GUISetState(@SW_SHOW)
While 1
Sleep(1000) ; Idle around
WEnd
Func OKButton()
;Note: at this point @GUI_CTRLID would equal $okbutton,
;and @GUI_WINHANDLE would equal $mainwindow
MsgBox(0, "GUI Event", "You pressed OK!")
EndFunc
Func CLOSEClicked()
;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE,
;and @GUI_WINHANDLE would equal $mainwindow
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
Exit
EndFunc
Cùng chức
năng nhưng
code dài hơn
Lời kết
n Tới đây là bạn đã “vững” kiến thức về AutoIt
n Nên autoitscript.com để học thêm
n Hãy tìm ý tưởng và thử thực hiện nó bằng
AutoIT
n Tài liệu này được biên soạn từ help của
AutoIt
n Mọi ý kiến góp ý gởi về địa chỉ
06Tonline.net@gmail.com

More Related Content

What's hot

Unit 7 nâng cao. Bài 7. Biến nhớ List.
Unit 7 nâng cao. Bài 7. Biến nhớ List.Unit 7 nâng cao. Bài 7. Biến nhớ List.
Unit 7 nâng cao. Bài 7. Biến nhớ List.Bùi Việt Hà
 
Unit 5 nâng cao. Bài 5. Thủ tục
Unit 5 nâng cao. Bài 5. Thủ tụcUnit 5 nâng cao. Bài 5. Thủ tục
Unit 5 nâng cao. Bài 5. Thủ tụcBùi Việt Hà
 
Scratch cơ bản. Bài 0. Tổng quan Scratch
Scratch cơ bản. Bài 0. Tổng quan ScratchScratch cơ bản. Bài 0. Tổng quan Scratch
Scratch cơ bản. Bài 0. Tổng quan ScratchBùi Việt Hà
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vnphiagame
 
Unit 8 nâng cao. Bài 8. Clone.
Unit 8 nâng cao. Bài 8. Clone.Unit 8 nâng cao. Bài 8. Clone.
Unit 8 nâng cao. Bài 8. Clone.Bùi Việt Hà
 
Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.
Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.
Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.Bùi Việt Hà
 
Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.
Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.
Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.Bùi Việt Hà
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascaldalat
 
Unit 4 nâng cao. Bài 4. Truyền thông.
Unit 4 nâng cao. Bài 4. Truyền thông.Unit 4 nâng cao. Bài 4. Truyền thông.
Unit 4 nâng cao. Bài 4. Truyền thông.Bùi Việt Hà
 
Huong dan ve do thi voi vc#
Huong dan ve do thi voi  vc# Huong dan ve do thi voi  vc#
Huong dan ve do thi voi vc# Trong Tran
 
Android Nâng cao-Bài 3: Broadcast Receiver
Android Nâng cao-Bài 3: Broadcast ReceiverAndroid Nâng cao-Bài 3: Broadcast Receiver
Android Nâng cao-Bài 3: Broadcast ReceiverPhuoc Nguyen
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Congdat Le
 

What's hot (17)

Unit 7 nâng cao. Bài 7. Biến nhớ List.
Unit 7 nâng cao. Bài 7. Biến nhớ List.Unit 7 nâng cao. Bài 7. Biến nhớ List.
Unit 7 nâng cao. Bài 7. Biến nhớ List.
 
Unit 5 nâng cao. Bài 5. Thủ tục
Unit 5 nâng cao. Bài 5. Thủ tụcUnit 5 nâng cao. Bài 5. Thủ tục
Unit 5 nâng cao. Bài 5. Thủ tục
 
Chuong 4
Chuong 4Chuong 4
Chuong 4
 
Scratch cơ bản. Bài 0. Tổng quan Scratch
Scratch cơ bản. Bài 0. Tổng quan ScratchScratch cơ bản. Bài 0. Tổng quan Scratch
Scratch cơ bản. Bài 0. Tổng quan Scratch
 
Làm quen với Scratch
Làm quen với ScratchLàm quen với Scratch
Làm quen với Scratch
 
Lesson 2 lý thuyết
Lesson 2 lý thuyếtLesson 2 lý thuyết
Lesson 2 lý thuyết
 
Meo lap trinh_tech24.vn
Meo lap trinh_tech24.vnMeo lap trinh_tech24.vn
Meo lap trinh_tech24.vn
 
Unit 8 nâng cao. Bài 8. Clone.
Unit 8 nâng cao. Bài 8. Clone.Unit 8 nâng cao. Bài 8. Clone.
Unit 8 nâng cao. Bài 8. Clone.
 
Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.
Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.
Unit 6 nâng cao. Bài 6. Xử lý số và xâu ký tự.
 
Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.
Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.
Unit 3 nâng cao. Bài 3. Nhân vật, sân khấu, âm thanh.
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascal
 
Giáo trình MSWLOGO Lớp 5
Giáo trình MSWLOGO Lớp 5Giáo trình MSWLOGO Lớp 5
Giáo trình MSWLOGO Lớp 5
 
Unit 4 nâng cao. Bài 4. Truyền thông.
Unit 4 nâng cao. Bài 4. Truyền thông.Unit 4 nâng cao. Bài 4. Truyền thông.
Unit 4 nâng cao. Bài 4. Truyền thông.
 
Huong dan ve do thi voi vc#
Huong dan ve do thi voi  vc# Huong dan ve do thi voi  vc#
Huong dan ve do thi voi vc#
 
Android Nâng cao-Bài 3: Broadcast Receiver
Android Nâng cao-Bài 3: Broadcast ReceiverAndroid Nâng cao-Bài 3: Broadcast Receiver
Android Nâng cao-Bài 3: Broadcast Receiver
 
Nmlt c05 cau_lenhlap
Nmlt c05 cau_lenhlapNmlt c05 cau_lenhlap
Nmlt c05 cau_lenhlap
 
Giao trinh bai tap c va c++
Giao trinh bai tap c va c++Giao trinh bai tap c va c++
Giao trinh bai tap c va c++
 

Viewers also liked

Revision 9.26.15 FatimaSantamariaHoger 4
Revision 9.26.15 FatimaSantamariaHoger 4Revision 9.26.15 FatimaSantamariaHoger 4
Revision 9.26.15 FatimaSantamariaHoger 4Fatima Hoger
 
Resume- Keita Jones (2)
Resume- Keita Jones (2)Resume- Keita Jones (2)
Resume- Keita Jones (2)Keita Jones
 
U.S. Burial Casket Market. Analysis And Forecast to 2020
U.S. Burial Casket Market. Analysis And Forecast to 2020U.S. Burial Casket Market. Analysis And Forecast to 2020
U.S. Burial Casket Market. Analysis And Forecast to 2020IndexBox Marketing
 
Sirat e mustaqeem persian
Sirat e mustaqeem persianSirat e mustaqeem persian
Sirat e mustaqeem persianMuhammad Tariq
 
ETF Live&Learn n°17 May 2010
ETF Live&Learn n°17 May 2010ETF Live&Learn n°17 May 2010
ETF Live&Learn n°17 May 2010Loïc Gogue
 
Walk along the river
Walk along the riverWalk along the river
Walk along the riverBecca Dupree
 
Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Panos Fitsilis
 
Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...
Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...
Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...eMadrid network
 

Viewers also liked (12)

Revision 9.26.15 FatimaSantamariaHoger 4
Revision 9.26.15 FatimaSantamariaHoger 4Revision 9.26.15 FatimaSantamariaHoger 4
Revision 9.26.15 FatimaSantamariaHoger 4
 
Resume- Keita Jones (2)
Resume- Keita Jones (2)Resume- Keita Jones (2)
Resume- Keita Jones (2)
 
U.S. Burial Casket Market. Analysis And Forecast to 2020
U.S. Burial Casket Market. Analysis And Forecast to 2020U.S. Burial Casket Market. Analysis And Forecast to 2020
U.S. Burial Casket Market. Analysis And Forecast to 2020
 
Sirat e mustaqeem persian
Sirat e mustaqeem persianSirat e mustaqeem persian
Sirat e mustaqeem persian
 
El corzo
El corzoEl corzo
El corzo
 
ETF Live&Learn n°17 May 2010
ETF Live&Learn n°17 May 2010ETF Live&Learn n°17 May 2010
ETF Live&Learn n°17 May 2010
 
Walk along the river
Walk along the riverWalk along the river
Walk along the river
 
Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland Mindtrek 2015 - Tampere Finland
Mindtrek 2015 - Tampere Finland
 
Machote de mecanismos
Machote de mecanismosMachote de mecanismos
Machote de mecanismos
 
Etica y moral
Etica y moralEtica y moral
Etica y moral
 
Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...
Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...
Seminario eMadrid sobre "Aprendizaje de la programación en diversos niveles e...
 
Consumer protection
Consumer protectionConsumer protection
Consumer protection
 

Similar to Auto it (upload_by_nguyentin2703)

Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalVõ Tâm Long
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1htpsccbb159
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh ctiểu minh
 
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...CodeGym Đà Nẵng
 
P05 delegate & event 2009
P05 delegate & event 2009P05 delegate & event 2009
P05 delegate & event 2009Hà Ngọc
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfHiNht6
 
Scilab for Beginners (Vietnamese)
Scilab for Beginners (Vietnamese)Scilab for Beginners (Vietnamese)
Scilab for Beginners (Vietnamese)TBSS Group
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiTrung Thanh Nguyen
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...MasterCode.vn
 
Thực hành lập trình Visual Bacsic
Thực hành lập trình Visual BacsicThực hành lập trình Visual Bacsic
Thực hành lập trình Visual BacsicLE The Vinh
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Dũng Đinh
 
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptxngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptxssuser49db3c1
 

Similar to Auto it (upload_by_nguyentin2703) (20)

Quản lý tiến trình
Quản lý tiến trìnhQuản lý tiến trình
Quản lý tiến trình
 
Cac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascalCac ham va thu tuc trong pascal
Cac ham va thu tuc trong pascal
 
User Control
User ControlUser Control
User Control
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
Bai tap lap trinh c
Bai tap lap trinh  cBai tap lap trinh  c
Bai tap lap trinh c
 
Ontap ltc
Ontap ltcOntap ltc
Ontap ltc
 
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
 
P05 delegate & event 2009
P05 delegate & event 2009P05 delegate & event 2009
P05 delegate & event 2009
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdf
 
Chuyen doi he so
Chuyen doi he soChuyen doi he so
Chuyen doi he so
 
Scilab for Beginners (Vietnamese)
Scilab for Beginners (Vietnamese)Scilab for Beginners (Vietnamese)
Scilab for Beginners (Vietnamese)
 
python3.pptx
python3.pptxpython3.pptx
python3.pptx
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
Bài 3: Lập trình giao diện điều khiển & Xử lý sự kiện - Lập trình winform - G...
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Thực hành lập trình Visual Bacsic
Thực hành lập trình Visual BacsicThực hành lập trình Visual Bacsic
Thực hành lập trình Visual Bacsic
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
 
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptxngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
 

Auto it (upload_by_nguyentin2703)

  • 1. AutoIt Jellydn – Lớp 06T1 – Khoa CNTT Đai học Bách Khoa Đà Nẵng
  • 2. Nội dung n Giới thiệu về AutoIt n Các ví dụ mở đầu n Cú pháp n Một số thủ thuật n GUI và xử lý sự kiện n Lời kết
  • 3. Giới thiệu về AutoIt n AutoIt n Là một ngôn ngữ script n Giúp NSD giả lập tự động: n Phím n Kích chuột n Tương tác với chương trình,file khác của máy tính. n Có cấu trúc tựa BASIC n Đơn giản , dễ học n Nhỏ gọn n Miễn phí n Tips: nên gõ và thực thi lại các ví dụ khi học !!! n Tải tại và cài đặt AutoIt tại địa chỉ http://www.autoitscript.com/autoit3/
  • 4. Các ví dụ mở đầu n HelloWorld n Chuột phải ngoài desktop -> new -> AutoIt v3 Script
  • 5. Các ví dụ mở đầu n HelloWorld n Đặt tên là helloworld.au3
  • 6. Các ví dụ mở đầu n HelloWorld n Chuột phải lên file vừa tạo -> Edit Script
  • 7. Các ví dụ mở đầu n HelloWorld n SciTE sẽ được mở
  • 8. Các ví dụ mở đầu n HelloWorld n Bạn thêm vào cuối file helloworld.au3 n MsgBox(0, "Tutorial", "Hello World!") n Save n Kiểm tra cú pháp :Tool->SyntaxCheck Prod n Nhấn F5 (Tool -> Go) n Kết quả
  • 9. Các ví dụ mở đầu n Tương tác với notepad n Tạo file note.au3 như ví dụ trên n Vào Start -> Run : gõ notepad n Mở công cụ : AutoIt Window Info n Vào Start->Programs->AutoIt v3->AutoIt Window Info n Dùng để lấy thông tin của một cửa sổ ứng dụng
  • 10. Các ví dụ mở đầu n Tương tác với notepad n Kích chuột vào của sổ notepad sẽ được thông tin về title
  • 11. Các ví dụ mở đầu n Tương tác với notepad n Thêm vào cuối file note.au3 n Run("notepad.exe") n ; lệnh run sẽ gọi file notepad.exe n WinWaitActive("Untitled - Notepad") n ; đợi tới khi của sổ notepad kích hoạt(active) n ; title : Untitled - Notepad n Send("This is some text.") n ; gởi dòng text tới notepad
  • 12. Các ví dụ mở đầu n Tương tác với notepad n Chạy thử file ( Tool->Go hoặc F5) n Kết quả
  • 13. Các ví dụ mở đầu n Tương tác với notepad n Tiếp tục thêm vào cuối file note.au3 n WinClose("Untitled - Notepad") n ;tắt notepad với title:Untitled – Notepad
  • 14. Các ví dụ mở đầu n Tương tác với notepad n Khi tắt sẽ gặp thông báo -> lấy title
  • 15. Các ví dụ mở đầu n Tương tác với notepad n Tiếp tục thêm vào cuối file note.au3 n WinWaitActive("Notepad", "Do you want to save") n ;đợi thông báo tắt xuất hiện n Send("!n") n ; !n=Alt+N -> phím tắt của No trong lựa chọn thoát n Save và thực thi (F5)
  • 16. Cú pháp n Kiểu dữ liệu n AutoIt chỉ 1 kiểu dữ liệu gọi là Variant n Nó có thể chứa số hay chuỗi kí tự n Tùy thuộc vào lúc xử lý n Gồm những loại dữ liệu sau: n Int32 n Int64 n Double n String n Binary n Pointer
  • 17. Cú pháp n Biến n Định danh: n Bắt đầu với $ n Gồm chữ , số và _ n Ví dụ : $myvar , $my_var n Khai báo: n Dim n Ví dụ : Dim $var1 n Local n Global n Có thể không khai báo mà sử dụng trực tiếp n Ví dụ: $var1 = "create and assign"
  • 18. Cú pháp n Biến n Hằng n Dùng từ khóa const n Const $const1 = 1, $const2=12 n Phạm vi hoạt động n Global n Sử dụng toàn chương trình n Từ lúc khai báo n Local n Chỉ trong hàm n Hủy khi hàm kết thúc
  • 19. Cú pháp n Biến n Mảng n Truy cập phần tử qua chỉ số n $Array[0]="A” n Trong 1 mảng có thể chứa nhiều loại dữ liệu n $Array[0]=1 $Array[1]=true $Array[2]="Text" $Array[3]=$AnotherArray n Điều này không bị cấm nhưng không nên dùng
  • 20. Cú pháp n Macros n Là những biến chỉ đọc n Đặt bởi AutoIt n Tên của macro bắt đầu với @ n Không thể gán giá trị cho macro
  • 21. Cú pháp n Toán tử n Số học n =,+=,-=,*=,/=,&=,+,-,*,/,&,^ n & : nối 2 chuỗi n ^ : mũ n Logic n AND , OR , NOT n So sánh n =,==,<,<=,>,>=,<> n = : so sánh 2 số n == : so sánh 2 chuỗi n <> : khác
  • 22. Cú pháp n Câu điều kiện n If...Then...Else n $var = 20 If $var > 10 Then MsgBox(0, "Example", "$var was greater than 10!") Else MsgBox(0, "Example", "$var was less than 10") EndIf
  • 23. Cú pháp n Câu điều kiện • Select...Case n $var = 30 Select Case $var > 1 AND $var <= 10 MsgBox(0, "Example", "$var was greater than 1") Case $var > 10 AND $var <= 20 MsgBox(0, "Example", "$var was greater than 10") Case $var > 20 AND $var <= 30 MsgBox(0, "Example", "$var was greater than 20") Case $var > 30 AND $var <= 40 MsgBox(0, "Example", "$var was greater than 30") Case $var > 40 MsgBox(0, "Example", "$var was greater than 40") EndSelect
  • 24. Cú pháp n Câu điều kiện • Switch...Case n $var = 30 Switch Int($var) Case 1 To 10 MsgBox(0, "Example", "$var was greater than 1") Case 11 To 20 MsgBox(0, "Example", "$var was greater than 10") Case 21 To 30 MsgBox(0, "Example", "$var was greater than 20") Case 31 To 40 MsgBox(0, "Example", "$var was greater than 30") Case Else MsgBox(0, "Example", "$var was greater than 40 or less or equal to 0") EndSwitch
  • 25. Cú pháp n Vòng lặp n For...To...Step...Next n For <variable> = <start> To <stop> [Step <stepval>] statements ... Next n Ví dụ: n For $i = 5 to 1 Step -1 MsgBox(0, "Count down!", $i) Next MsgBox(0,"", "Blast Off!") Vòng lặp cho phép chạy trong nó vòng lặp for khác
  • 26. Cú pháp n Vòng lặp n While...WEnd n While <expression> statements ... WEnd n Ví dụ: n $i = 0 While $i <= 10 MsgBox(0, "Value of $i is:", $i) $i = $i + 1 WEnd !") Vòng lặp cho phép chạy trong nó vòng lặp While khác
  • 27. Cú pháp n Vòng lặp n Do...Until n Do statements ... Until <expression> n Ví dụ: n $i = 0 Do MsgBox(0, "Value of $i is:", $i) $i = $i + 1 Until $i = 10 Vòng lặp cho phép chạy trong nó vòng lặp Do Until khác
  • 28. Cú pháp n Vòng lặp n With...EndWith n With <expression> statements ... EndWith n Ví dụ: n $oExcel = ObjCreate("Excel.Application") $oExcel.visible =1 $oExcel.workbooks.add With $oExcel.activesheet .cells(2,2).value = 1 .range("A1:B2").clear EndWith $oExcel.quit Vòng lặp không cho phép chạy trong nó vòng lặp With khác
  • 29. Cú pháp n Vòng lặp n For...In...Next n For <$Variable> In <expression> statements ... Next n Chỉ làm việc với mảng hay tập đối tượng Vòng lặp cho phép chạy trong nó vòng lặp For khác
  • 30. Cú pháp n Vòng lặp n For...In...Next n ;Using an Array Dim $aArray[4] $aArray[0]="a" $aArray[1]=0 $aArray[2]=1.3434 $aArray[3]="test" $string = "" FOR $element IN $aArray $string = $string & $element & @CRLF NEXT Msgbox(0,"For..IN Arraytest","Result is: " & @CRLF & $string) ;Using an Object Collection $oShell = ObjCreate("shell.application") $oShellWindows=$oShell.windows if Isobj($oShellWindows) then $string="" for $Window in $oShellWindows $String = $String & $Window.LocationName & @CRLF next msgbox(0,"","You have the following windows open:" & @CRLF & $String) else msgbox(0,"","you have no open shell windows.") endif
  • 31. Cú pháp n Hàm n Định danh : giống như biến n Func functioname ( [Const] [ByRef] $param1, ..., [Const] [ByRef] $paramN, $optionalpar1 = value, ...) ... [Return [value]] EndFunc n Ví dụ: n $val = 10 For $i = 1 To 10 $doubled = MyDouble($val) MsgBox(0, "", $val & " doubled is " & $doubled) $val = $doubled Next Exit Func MyDouble($value) $value = $value * 2 Return $value EndFunc
  • 32. Một số thủ thuật n Ẩn icon của AutoIt dưới khay hệ thống n Thêm #NoTrayIcon vào đầu file n Thực thi AutoIt trên Vista n Vista yêu cầu “quyền” trước khi thực thi n Thêm #RequireAdmin vào đầu file
  • 33. GUI và lập trình sự kiện n GUI(Graphical User Interfaces) n AutoIT cho phép bạn dễ dàng tạo các control n Các control thường dùng: n Label : tên nhãn n Button : nút bấm n Input : hộp text nhập 1 dòng n Edit : hộp text nhiều dòng n Checkbox,Radio n Combo,List n Date n Pic , Icon n Progress : thanh loading n Menu,ContextMenu n Slider
  • 34. GUI và lập trình sự kiện n Các hàm GUI n GUICreate() : tạo cửa sổ làm việc n GUICtrlCreate…() : tạo các control tương ứng n GUISetState() : hiện hay ẩn cửa sổ n GUIGetMsg() : lấy thông tin về cửa sổ n GUICtrlRead() : đọc dữ liệu từ control n GUICtrlSetData() : ghi dữ liệu vào control n GUICtrlSet…(): ghi dữ liệu vào một số thuộc tính khác ( màu sắc , font chữ,…)
  • 35. GUI và lập trình sự kiện n GUI(Graphical User Interfaces) n HelloGUI.au3 n #include <GUIConstantsEx.au3> ;Tao cua so 200x100 voi ten la Hello World n GUICreate("Hello World", 200, 100) ;Tao label va button n GUICtrlCreateLabel("Hello world! How are you?", 30, 10) GUICtrlCreateButton("OK", 70, 50, 60) ;Hien cua so n GUISetState(@SW_SHOW) ;doi 2s n Sleep(2000)
  • 36. GUI và lập trình sự kiện n Lập trình sự kiện n AutoIt có 2 chế độ n MessageLoop n Là mặc định của AutoIt n Dùng hàm GUIGetMsg() để lấy sự kiện n OnEvent n Dùng hàm Opt("GUIOnEventMode", 1) n Dùng hàm GUICtrlSetOnEvent() để tạo hành động cho sự kiện
  • 37. GUI và lập trình sự kiện n Lập trình sự kiện n MessageLoop n GUIGetMsg() sẽ trả về 3 kiểu n Không có sự kiện : trả về 0 n Sự kiện của control : trả về controlID n Sự kiện của hệ thống : được khai báo trong GUIConstantsEx.au3 n $GUI_EVENT_CLOSE $GUI_EVENT_MINIMIZE $GUI_EVENT_RESTORE $GUI_EVENT_MAXIMIZE $GUI_EVENT_PRIMARYDOWN $GUI_EVENT_PRIMARYUP $GUI_EVENT_SECONDARYDOWN $GUI_EVENT_SECONDARYUP $GUI_EVENT_MOUSEMOVE $GUI_EVENT_RESIZED $GUI_EVENT_DROPPED
  • 38. GUI và lập trình sự kiện n Lập trình sự kiện n MessageLoop n Ví dụ đơn giản: n #include <GUIConstantsEx.au3> GUICreate("Hello World", 200, 100) GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $okbutton MsgBox(0, "GUI Event", "You pressed OK!") Case $msg = $GUI_EVENT_CLOSE MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...") ExitLoop EndSelect WEnd
  • 39. GUI và lập trình sự kiện n Lập trình sự kiện n MessageLoop n GUIGetMsg(1) n Trả về một mảng n $array[0] = 0 hoặc Event ID hoặc Control ID n $array[1] = cửa sổ đang xử lý n $array[2] = control đang thực thi n $array[3] = tọa độ X của cửa sổ n $array[4] = tọa độ Y của cửa sổ
  • 40. GUI và lập trình sự kiện n Lập trình sự kiện n MessageLoop n #include <GUIConstantsEx.au3> $mainwindow = GUICreate("Hello World", 200, 100) GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) $dummywindow = GUICreate("Dummy window for testing ", 200, 100) GUISwitch($mainwindow) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg(1) Select Case $msg[0] = $okbutton MsgBox(0, "GUI Event", "You pressed OK!") Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $mainwindow MsgBox(0, "GUI Event", "You clicked CLOSE on the main window! Exiting...") ExitLoop EndSelect WEnd
  • 41. GUI và lập trình sự kiện n Lập trình sự kiện n OnEvent n Thao tác với 2 loại sự kiện n Sự kiện của control n Sự kiện của hệ thống n Dùng 2 hàm để tạo hành động cho sự kiện n GUISetOnEvent() n GUICtrlSetOnEvent() n Không nên dùng cách này vì: n Code dài và rờm rà n Phải bật option (opt)
  • 42. GUI và lập trình sự kiện n Lập trình sự kiện n OnEvent n #include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainwindow = GUICreate("Hello World", 200, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) GUICtrlSetOnEvent($okbutton, "OKButton") GUISetState(@SW_SHOW) While 1 Sleep(1000) ; Idle around WEnd Func OKButton() ;Note: at this point @GUI_CTRLID would equal $okbutton, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You pressed OK!") EndFunc Func CLOSEClicked() ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...") Exit EndFunc Cùng chức năng nhưng code dài hơn
  • 43. Lời kết n Tới đây là bạn đã “vững” kiến thức về AutoIt n Nên autoitscript.com để học thêm n Hãy tìm ý tưởng và thử thực hiện nó bằng AutoIT n Tài liệu này được biên soạn từ help của AutoIt n Mọi ý kiến góp ý gởi về địa chỉ 06Tonline.net@gmail.com