SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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++
 

En vedette

Manuales Administrativos Esmeray Paez
Manuales Administrativos Esmeray PaezManuales Administrativos Esmeray Paez
Manuales Administrativos Esmeray PaezEsmerayPaez
 
Establecimiento de la estructura publicitaria
Establecimiento de la estructura publicitariaEstablecimiento de la estructura publicitaria
Establecimiento de la estructura publicitariaamalia roca
 
History of distance learning
History of distance learningHistory of distance learning
History of distance learningjilllove1
 
Thinking ofyou_02_001
 Thinking ofyou_02_001 Thinking ofyou_02_001
Thinking ofyou_02_001chocnut
 
M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...
M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...
M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...Green Bat 2014
 
E student services 07.20.14
E student services 07.20.14E student services 07.20.14
E student services 07.20.14jilllove1
 
Salesforce Training in Chennai
Salesforce Training in ChennaiSalesforce Training in Chennai
Salesforce Training in ChennaiRohit Sharma
 

En vedette (9)

Manuales Administrativos Esmeray Paez
Manuales Administrativos Esmeray PaezManuales Administrativos Esmeray Paez
Manuales Administrativos Esmeray Paez
 
Establecimiento de la estructura publicitaria
Establecimiento de la estructura publicitariaEstablecimiento de la estructura publicitaria
Establecimiento de la estructura publicitaria
 
Viaje al polo norte 2
Viaje al polo norte 2Viaje al polo norte 2
Viaje al polo norte 2
 
History of distance learning
History of distance learningHistory of distance learning
History of distance learning
 
Thinking ofyou_02_001
 Thinking ofyou_02_001 Thinking ofyou_02_001
Thinking ofyou_02_001
 
M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...
M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...
M. Valle - Tutti in Classe A, la radiografia energetica del patrimonio ediliz...
 
E student services 07.20.14
E student services 07.20.14E student services 07.20.14
E student services 07.20.14
 
Places To Visit
Places To Visit Places To Visit
Places To Visit
 
Salesforce Training in Chennai
Salesforce Training in ChennaiSalesforce Training in Chennai
Salesforce Training in Chennai
 

Similaire à 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
 

Similaire à 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