AutoIt Help bằng tiếng Việt

willrock777

ChampionClan
Staff member
***********PI :
_AutoIt - Cái nhìn tổng quan



Thread này - coi như là để chào đón bài viết thứ 1000 của identical. Và phấn đấu lên 1000 thanked trong thời gian sớm nhất

Dedicated to cleo

1. Giới thiệu về AutoIt. Lịch sử phát triển

AutoIt là gì? Nó có được coi là một ngôn ngữ lập trình ko? Đó là câu hỏi thường được nhắc đi nhắc lại

AutoIt là một ngôn ngữ dễ học, dễ sử dụng, giúp người dùng có thể thực thi những công việc mình thường phải làm trên máy tính một cách tự động. Bằng cách giả lập các phím bấm, các nút click chuột, cùng với khả năng tương tác với các cửa sổ, các chương trình, các file trong máy tính... AutoIt có thể làm được rất nhiều việc. Nhỏ, nhẹ, thậm chí có thể ko cần cài đặt, khả năng tương thích cao (từ Win 95 đến Win 2k3) và khả năng xuất ra file exe đã khiến AutoIt trở nên thông dụng và ngày càng được nhiều người biết đến

Riêng ở VN, AutoIt được biết đến thông qua hàng loạt những "virus" phát tán qua YM Có thể nói đây là một "hướng đi" khác của các chương trình viết bằng AutoIt, góp phần ko nhỏ khiến cho ngày càng nhiều các công cụ anti-virus nhận diện chương trình viết bằng AutoIt là virus, bất luận mục đích thực sự của những chương trình này là tốt hay xấu

Ban đầu, các file mã nguồn AutoIt mang đuôi .ini (AutoIt 1), sau chuyển sang .aut (AutoIt 2) và giờ là .au3 (AutoIt 3). Mã nguồn chương trình AutoIt từ chỗ khá rắc rối (phiên bản 2) đã trở nên cực kỳ đơn giản và dễ hiểu (phiên bản 3), do khá gần gũi với ngôn ngữ BASIC. Cũng nên nói thêm một chút, trong quá trình đi từ AutoIt 2 lên AutoIt 3, một lập trình viên trong nhóm phát triển AutoIt đã quyết định tách ra thực hiện một dự án mới, mang lại nhiều tính năng mạnh mẽ thậm chí còn hơn AutoIt - tuy vậy cú pháp ngôn ngữ này cực kỳ phức tạp và khó hiểu , ko trong sáng như AutoIt 3.

AutoIt có thể được tải về từ trang chủ www.autoitscript.com



Identical(UDS)

PS : lấy từ ebook _ Echip .
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

*******PII :
2. Những công cụ cần dùng để viết các chương trình bằng AutoIt

Hiển nhiên, trước tiên bạn cần có AutoIt.

AutoIt được phân phối ở 2 dạng: Installer và ZIP. Phiên bản mới nhất là 3.2.0.1.

Ở dạng Installer, bạn sẽ down về một file exe: http://www.autoitscript.com/cgi-bin/....0.1-setup.exe - bộ cài của AutoIt. Down bộ cài đồng nghĩa với việc bạn sẽ có thêm nhiều tiện ích khi sử dụng AutoIt. Ví dụ, khi bạn kích chuột phải vào 1 file .au3, sẽ có tùy chọn cho phép bạn chạy script / sửa script bằng editor...

Còn dạng ZIP: http://www.autoitscript.com/cgi-bin/...t-v3.2.0.1.zip - dạng này cho phép bạn sử dụng AutoIt ở bất cứ đâu mà ko cần phải cài đặt (tạo rác trong registry ). Đây chính là bản portable mà bạn có thể đặt trong USB stick của mình

Để soạn thảo file .au3, bạn có thể dùng bất cứ trình soạn thảo nào, thậm chí là Notepad của Windows Nếu muốn pzo hơn, có tính năng highlight code, chạy thử code bằng cách bấm F5... bạn có thể sử dụng SciTE. Đây là bản SciTE đã được sửa đổi để giúp bạn trong quá trình sử dụng AutoIt: http://www.autoitscript.com/autoit3/scite/downloads.php

Hoặc, bạn có thể dùng Textpad, Crimson Editor hay PSPad để viết các chương trình AutoIt. Các file syntax dành cho 3 trình soạn thảo này được kèm trong thư mục Extras\Editors của AutoIt.

Sau khi tiến hành cài đặt / giải nén AutoIt, bạn sẽ thấy một số file quan trọng nằm trong thư mục này và các thư mục con:

AutoIt3.exe - Công cụ dùng để chạy các mã nguồn viết bằng AutoIt
Aut2Exe.exe - Công cụ biên dịch file .au3 thành .exe để phân phối
Exe2Aut.exe - Công cụ dịch ngược file .exe (viết bằng AutoIt - hiển nhiên) về .au3
Au3Info.exe - Công cụ cho biết thông tin về các cửa sổ trên màn hình

Còn khá nhiều file khác, tuy nhiên trên đây là những công cụ cần thiết nhất.



Identical(UDS)


PS : lấy từ ebook _ Echip
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

Do AutoIT cần thiết cho bạn nào chỉnh sửa Source Auto PTV . nên mình post bài ở đây luôn nha . 1 ngày 2 phần để tham khảo dần . tổng cộng có 10P .
 

Admin

Tổng tư lệnh
Staff member
Re: AutoIt Help = tiếng Việt

Bài viết hữu ích cho ai muốn chỉnh sửa . Nhưng thêm vài phần về mấy thứ liên quan trong auto nhé
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

1 ngày 2 bài à . để ngấm vào tim đã chứ . :D . nhưng đây chỉ là biên dịch những gì trong phần help thôi . hôm nào kiếm mua cuốn sách về AutoIt chắc sẽ rõ ràng hơn .
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

*********PIII :
3. Ngôn ngữ AutoIt qua cái nhìn khái quát

Làm thế nào để biết cách sử dụng và làm chủ sức mạnh của AutoIt?

Câu trả lời hết sức đơn giản: Tham khảo file Help + Forum của AutoIt.

Tất cả những j` cần thiết đều đã được trình bày một cách kỹ càng và đầy đủ trong file Help của AutoIt. Ở đây, tớ chỉ dẫn ra những điểm quan trọng nhất về ngôn ngữ AutoIt.

3.1. Cấu trúc file .au3

Một file script viết bằng AutoIt có định dạng .au3

File au3 này bao gồm các dòng lệnh, ví dụ như sau:

Code:

; This is my second script (with functions)

MsgBox(0, "My second script!", "Hello from the main script!")

TestFunc()



Func TestFunc()

MsgBox(0, "My Second Script!", "Hello from the functions!")

EndFunc


Như bạn có thể thấy, dòng đầu tiên là một chú thích, được đặt sau dấu ;. Nếu chú thích dài nhiều dòng, bạn có thể đặt trong khối #cs - #ce:

Code:

#cs

Comment goes here

Line 1

Line 2

#ce


3.2. Biến trong AutoIt

Trong AutoIt, các biến bắt đầu bằng dấu $, giống như ngôn ngữ PHP. Biến có thể được khai báo bằng các từ khóa Dim, Local hay Global:

Code:

Dim $var1, $myvariable


Hoặc, bạn có thể dùng trực tiếp biến mà ko cần khai báo:

Code:

$var1 = "create and assign"


AutoIt hiển nhiên cũng hỗ trợ mảng nhiều chiều. Bạn chỉ việc sử dụng chúng cùng với chỉ số đặt trong dấu ngoặc vuông. Ví dụ:

Code:

$Array[1]="A"

$Array[1][1]="Upper-Left"

Identical(UDS)


PS : lấy từ Ebook _echip
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

ho ho . cuối cùng cũng đã vọc thành công cách decompile . mừng quá . nay khỏi phải phiền đến bác Admin rồi . vào game mua auto proII rồi decompile lại share anh em sài chơi . :D
 

Admin

Tổng tư lệnh
Staff member
Re: AutoIt Help = tiếng Việt

Chưa chắc đã lấy được hết source của nó . Nếu nó mã hóa đoạn code đó thì decomplie ko thấy được
 

Admin

Tổng tư lệnh
Staff member
Re: AutoIt Help = tiếng Việt

Hehe . Lúc người ta cần sẽ vào coi thôi
 

Langtuhan

Phó Tổng Tư Lệnh
Staff member
Re: AutoIt Help = tiếng Việt

bác share cho anh sớm nha để còn sài chứ, Tổng quản nè... cái Auto hình như không dùng được khi không có chế độ cửa sổ... mà PTA, RPT không cho chơi của sổ --> tính sao giờ... Admin " vì dân phục vụ " dân PT nha
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

**********PIV :
3.3. Các kiểu dữ liệu

AutoIt gồm các kiểu dữ liệu: Số; Xâu (hay chuỗi); Logic; Xâu nhị phân.

Dữ liệu kiểu số có thể là số nguyên (10, -6) hay số thực (3.334, 1.4e5) hay thậm chí ở dạng Hex (0x4FFFF, 0x409 - bắt đầu bằng 0x)

Dữ liệu kiểu xâu (chuỗi) được đặt trong dấu nháy đơn / nháy kép:

Code:

'This "sentence" contains "lots" of "double-quotes" does it not?'


Dữ liệu kiểu logic có 1 trong 2 giá trị: true hoặc false:

Code:

$Boolean1 = true

$Boolean2 = false


Cuối cùng, kiểu xâu nhị phân là xâu bao gồm ký tự chr(0):

Code:

$bin = "abc" & chr(0) & "def"

$bin = BinaryString("abc")


3.4. Các toán tử

Cũng như các ngôn ngữ lập trình khác, AutoIt có các toán tử quen thuộc: +, -, *, /, ^...

Hoàn toàn có thể sử dụng các toán tử như +=, -=, *=, /=

Với kiểu logic, AND, OR và NOT là các toán tử hợp lệ.

3.5. Cấu trúc điều khiển

Có 3 loại cấu trúc điều khiển trong AutoIt:

If...ElseIf...Else...EndIf
Select...Case...EndSelect
Switch...Case...EndSwitch

Cấu trúc If...ElseIf...Else...EndIf kiểm tra điều kiện, sau đó thực thi các lệnh:

Code:

If $var > 0 Then

MsgBox(4096,"", "Value is positive.")

ElseIf $var < 0 Then

MsgBox(4096,"", "Value is negative.")

Else

If StringIsXDigit ($var) Then

MsgBox(4096,"", "Value might be hexadecimal!")

Else

MsgBox(4096,"", "Value is either a string or is zero.")

EndIf

EndIf


Cấu trúc Select...Case sử dụng trong trường hợp cấu trúc If trở nên rườm rà:

Code:

Select

Case $var = 1

MsgBox(0, "", "First Case expression was true")

Case $var2 = "test"

MsgBox(0, "", "Second Case expression was true")

Case Else

MsgBox(0, "", "No preceding case was true!")

EndSelect


Cấu trúc Switch...Case...EndSwitch hoàn toàn tương tự, tuy nhiên nó tiến bộ ở chỗ cho phép bạn chỉ rõ khoảng giá trị cần kiểm tra:

Code:

Switch @HOUR

Case 6 To 11

$msg = "Good Morning"

Case 12 To 17

$msg = "Good Afternoon"

Case 18 To 21

$msg = "Good Evening"

Case Else

$msg = "What are you still doing up?"

EndSwitch

Identical(UDS)
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

******* P V :
3.6. Các vòng lặp

Các loại vòng lặp trong AutoIt gồm có:

For...Next
While...WEnd
Do...Until
With...Endwith
For...In...Next

For...Next được sử dụng để lặp từ giá trị ban đầu đến giá trị kết thúc, theo bước nhảy định sẵn:

Code:

For $i = 5 to 1 Step -1

MsgBox(0, "Count down!", $i)

Next

MsgBox(0,"", "Blast Off!")


While...WEnd và Do...Until tương tự như While Do và Repeat Until của Pascal:

Code:

$i = 0

While $i <= 10

MsgBox(0, "Value of $i is:", $i)

$i = $i + 1

WEnd



Code:

$i = 0

Do

MsgBox(0, "Value of $i is:", $i)

$i = $i + 1

Until $i = 10


With...EndWith dùng với các đối tượng, giúp tiết kiệm công sức khi gõ:

Code:

$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


Tương tự, bằng cách sử dụng For...In...Next, ta có thể duyệt qua tất cả mảng / tập các đối tượng:

Code:

FOR $element IN $aArray

$string = $string & $element & @CRLF

NEXT

Identical(UDS)
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

Decompile : post lên đây nhưng hem biết cách attach file . nên send cho mọi người source luôn . xong về compile lại nha .
Nhiều line quá . nhưng đây là cách đơn giản nhất .
menu,utility, Add,Download the Exe2Ahk Decompile cmd utility,MenuHandler1
menu, myMenuBar, Add,utility,:utility
menu,help, Add,Help,MenuHandler2
menu,help, Add,About,MenuHandler3
menu, myMenuBar, Add,Help,:Help
gui, menu,MyMenuBar
Gui, Add, Edit, x156 y63 w250 h20,
Gui, Add, Button, x416 y63 w30 h20 gBrowse1, ...
Gui, Add, Edit, x156 y93 w250 h20,
Gui, Add, Edit, x156 y123 w250 h20,
Gui, Add, Button, x416 y93 w30 h20 gBrowse2, ...
Gui, Add, Button, x76 y163 w390 h20, Decompile
Gui, Add, Text, x76 y53 w80 h30,AHK exe file to Decompile
Gui, Add, Text, x86 y93 w70 h20,Exe2Ahk
Gui, Add, Text, x86 y123 w70 h20,Password
Gui, Show, x170 y110 h246 w557, AHK Decompile script 1.0
Spath = %A_ScriptDir%\Exe2Ahk.exe
Gosub, GetSpath
IfExist, %Spath%
GuiControl,,Edit2, %Spath%
Return
;-----------------------------------------------------------------------------------------------
MenuHandler3:
msgbox, AHK Decompile script 1.0 a script to Decompile Ahk compile scripts script by (^sleepy^) 1-22-05 `r`n`r`nModified...
return
;-----------------------------------------------------------------------------------------------
MenuHandler2:
run,http://www.autohotkey.com/docs/
return
;-----------------------------------------------------------------------------------------------
MenuHandler1:
URLDownloadToFile,http://www.autohotkey.com/download/Exe2Ahk.exe ,%A_ScriptDir%\Exe2Ahk.exe
IfExist, %A_ScriptDir%\Exe2Ahk.exe
{
Spath = %A_ScriptDir%\Exe2Ahk.exe
Gosub, GetSpath
foundit = %Spath%
GuiControl,,Edit2, %Spath%
}
return
;-----------------------------------------------------------------------------------------------
Browse1:
FileSelectFile, SelectedFile, 3, , Open a, ahk compiled script (*.exe)
if SelectedFile =
{
MsgBox, You didn't select anything.
Return
}
else
{
Spath = %SelectedFile%
Gosub, GetSpath
GuiControl,,Edit1,%Spath%
}
return
;-----------------------------------------------------------------------------------------------
Browse2:
msgbox,1,,Decompiler will now search for the Exe2Ahk Decompile cmd utility!
IfMsgBox, Cancel
return
SplashTextOn,,,Searching...,
Loop,C:\Exe2Ahk.exe, , 1 ; Recurse into subfolders.
{
foundit = %A_LoopFileShortPath%
}
IfExist, foundit
{
FileCopy, %foundit%, %A_ScriptDir%\Exe2Ahk.exe
Spath = %A_ScriptDir%\Exe2Ahk.exe
Gosub, GetSpath
foundit = %Spath%
GuiControl,,Edit2, %Spath%
}
else
{
Gosub, MenuHandler1
}
SplashTextOff
return
;-----------------------------------------------------------------------------------------------
GetSpath:
Loop, %Spath%
{
Spath = %A_LoopFileShortPath%
}
Return
;-----------------------------------------------------------------------------------------------
buttondecompile:
ControlGetText, AHKfile, Edit1
ControlGetText, E2AHK, Edit2
ControlGetText, EXEpass, Edit3
IfNotExist, %E2AHK%
{
MsgBox, Error. EXE2AHK not specified. File not Decompiled.
Return
}
else
{
RunWait, %E2AHK%%A_Space%%AHKfile%%A_Space%%EXEpass%,, Hide
StringTrimRight, dcomp, AHKfile, 3
dcomp2 = %dcomp%new
dcomp = %dcomp%ahk

IfExist, %dcomp2%
{
msgbox,4,,Decompiled file already exists. Overwrite?
IfMsgBox, No
{
FileDelete, %dcomp2%
MsgBox, File was not decompiled
return
}
else
{
FileMove, %dcomp2%, %dcomp%, 1
}
}

IfExist, %dcomp%
{
MsgBox, Decompiled Ok. `r`n`r`n%AHKfile%
msgbox,4,,Open file for editing with Notepad?
IfMsgBox, Yes
{
Run, Notepad%A_Space%%dcomp%
}
}
else
{
MsgBox, File was not decompiled
}
}
dcomp=
dcompnew=
return
;-----------------------------------------------------------------------------------------------
GuiClose:
ExitApp
PS : lấy từ 4rom của autohotkey . tác giả hình như là ... quên rồi . :(
 

dataru

New Member
Re: AutoIt Help = tiếng Việt

Đã decompliment được rồi thank willrock 1 cái. Mà will đã decompliment được bản auto pro mới chưa gửi data 1 bản :D
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

auto pro mới mà proPk phân phối chẳng có thêm tính năng gì ích lợi lắm . nên thôi . không đáng để update lên đâu . :D .
 

willrock777

ChampionClan
Staff member
Re: AutoIt Help = tiếng Việt

******** P VI :
3.7. Hàm

Hàm trong AutoIt được định nghĩa bằng cách dùng khối Func...EndFunc:

Code:

Func MyDouble($value)

$value = $value * 2

Return $value

EndFunc


Sử dụng hàm cũng rất đơn giản:

Code:

$val = 10

For $i = 1 To 10

$doubled = MyDouble($val)

MsgBox(0, "", $val & " doubled is " & $doubled)

$val = $doubled

Next

Identical(UDS)



********** P VII :
4. Sử dụng các hàm built-in của AutoIt

Đây có thể coi là yếu tố tạo nên 80% sức mạnh của AutoIt. AutoIt bao gồm một số lượng lớn các hàm built-in, với tính năng trải rộng từ Quản lý file, thư mục đến quản lý các process, từ tương tác với registry đến giả lập các phím bấm...

Nói chung, các hàm này đã được liệt kê và hướng dẫn hết sức chi tiết về cách sử dụng trong file Help của AutoIt, do đó việc kể tên ra đây là vô nghĩa và ko cần thiết

Hãy thử ví dụ với script sau, được dùng để tự động hóa quá trình cài đặt WinZip - giả lập bàn phím và gửi các phím cần thiết tới trình cài đặt:

Code:

; Run the winzip installer

Run("winzip90.exe")



; Initial Setup Screen

WinWaitActive("WinZip® 9.0 SR-1 Setup", "&Setup")

Send("!s")



; Install location

WinWaitActive("WinZip Setup", "into the following folder")

Send("{ENTER}")



; Features overview

WinWaitActive("WinZip Setup", "WinZip features include")

Send("!n")



; License agreement

WinWaitActive("License Agreement")

Send("!y")



; Quick start

WinWaitActive("WinZip Setup", "Quick Start Guide")

Send("!n")



; Choose interface

WinWaitActive("WinZip Setup", "switch between the two interfaces")

Send("!c")

Send("!n")



; Installation type (custom/express)

WinWaitActive("WinZip Setup", "&Express setup (recommended)")

Send("!e")

Send("!n")



; Select file associations

WinWaitActive("WinZip Setup", "WinZip needs to associate itself with your archives")

Send("!n")



; Completed installation screen

WinWaitActive("WinZip Setup", "Thank you for installing this evaluation version")

Send("{ENTER}")



; Wait for winzip to load then close it

WinWaitActive("WinZip (Evaluation Version)")

WinClose("WinZip (Evaluation Version)")




Hoặc, vài ba lệnh dùng để tương tác với registry:

Code:

; Write a single REG_SZ value

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey", "REG_SZ", "Hello this is a test")



; Write the REG_MULTI_SZ value of "line1" and "line2"

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey1", "REG_MULTI_SZ", "line1" & @LF & "line2")


Một lời khuyên duy nhất: Bạn chỉ cần file Help + Forum của AutoIt để làm mọi thứ

5. Các hàm do người dùng tự định nghĩa

Các hàm này, nằm trong các file au3 được phân phối kèm với AutoIt. Điểm phân biệt hàm này với các hàm built-in là ở tên của hàm - Hàm tự định nghĩa thường có dấu gạch dưới ở trước tên, hàm built-in thì ko.

Để sử dụng các hàm tự định nghĩa, bạn cần include file mã nguồn của hàm vào script mình đang thực hiện. Ví dụ:

Code:

#include <date.au3>

MsgBox(0,"Today","Today's date is " & Now())


Số lượng hàm tự định nghĩa rất nhiều và có thể được lấy về từ autoitscript.com



Identical(UDS)


PS : từ 4room của autohotkey....
 

dataru

New Member
Re: AutoIt Help = tiếng Việt

cái hàm WinWaitActive , IfWinActive, IfWinNoActive có ý nghĩa gì vậy hả will?
 
Top