@AutoItPID ID của đoạn chương trình script đang chạy trong bộ nhớ @AutoItVersion Số phiên bản của AutoIt như 3.0.102.0 @AutoItX64 Trả về 1 nếu đang chạy dưới AutoIT phiên bản x64 @InetGetActive Là 1 nếu một InetGet download đã được kích hoạt, ngược lại là 0. @InetGetBytesRead Suốt quá trình InetGet download, macro này cho số byte đã đọc. Cho -1 nếu có một lỗi download. @CR Phím xuống dòng, Chr(13); đôi lúc hữu dụng cho các ngắt dòng @LF Tín hiệu xuống dòng, Chr(10); đặc trưng cho việc ngắt dòng @CRLF = @CR & @LF ; đôi lúc hữu dụng cho các ngắt dòng @TAB Phím Tab, Chr(9) CÂU LỆNH ĐIỀU KIỆN IF Câu lệnh if là một câu lệnh điều kiện phổ biến nhất trong các ngôn ngữ lập trình bậc cao. Nó được dùng để kiểm tra một điều kiện nào đó, nếu dúng thì thực hiện công việc tương ứng, ngược lại thì làm một việc khác. Nếu bạn đã học qua Excel thì chắc chắn phải biết hàm If bên đó. Với AutoIt, câu lệnh điều kiện if được thành lập thành một khối. Để đơn giản, ta chia thành các phần nhỏ để dễ trình bày. Dạng chung của If : If <điều kiện> Then <các câu lệnh> Else <các câu lệnh> EndIf Như trình bày ở trên ta thấy rằng, một khối lệnh If phải được bắt đầu với If Then và kết thúc với EndIf. <điều kiện> là một biểu thức so sánh (có sử dụng các toán tử so sánh, logic như : <, >, <> , =, And, Or, Not) hoặc một biểu thức thường có trả về giá trị. Nếu điều kiện trả về True thì <các câu lệnh> sau Then được thực hiện. Nếu ngược lại thì <các câu lệnh> sau Else được thực hiện, không bao giờ xảy ra hai trường hợp cùng một lúc. Cũng xin nhắc lại, nếu <điều kiện> trả về một giá khác 0 thì có nghĩa True, bằng 0 là False. <các câu lệnh> có thể là một hay nhiều dòng lệnh, hoặc cũng có thể là lệnh rỗng. Hoặc cũng có thể là một khối điều kiện If khác. Mệnh đề Else thì tự chọn, có thể có hoặc không. Nếu Else không tồn tại thì khi <điều kiện> là False thì chương trình sẽ thực hiện tiếp các lệnh nằm sau EndIf. Ví dụ đơn giản sau xét xem số chỉ định là chẵn hay lẻ. $n = 101 If Mod($n, 2)=0 Then MsgBox(0, "Ket qua", $n & " là số chẵn") Else MsgBox(0, "Ket qua", $n & " là số lẻ") EndIf Hàm Mod có chức năng tìm số dư của phép chia giữa $n và 2. Cú pháp chung là Mod( a, b). Trong đó a là số bị chia và b là số chia. Các If lồng nhau : If được lồng nhau là một If nằm bên trong một khối If EndIf khác. Các If lồng nhau được dùng rất phổ biến trong lập trình, thông thường là trong trường hợp thẩm định một <điều kiện> với nhiều giả thiết xảy ra khác nhau. Trong các If lồng nhau thì lệnh Else luôn có mối quan hệ liên kết với khối If (chưa có EndIf ) nằm gần nó nhất. Ví dụ sau là một bổ sung của ví dụ phía trên, xét xem thêm điều kiện để biết số đó có phải là số có 3 chữ số hay không. $n = 1010 If Mod($n, 2)=0 Then If 100<=$n And $n<=999 Then MsgBox(0, "Ket qua", $n & " là số chẵn có 3 chữ số") Else MsgBox(0, "Ket qua", $n & " là số chẵn không phải 3 chữ số") EndIf Else If 100<=$n And $n<=999 Then MsgBox(0, "Ket qua", $n & " là số lẻ có 3 chữ số") Else MsgBox(0, "Ket qua", $n & " là số lẻ không phải 3 chữ số") EndIf EndIf Bước thang If ElseIf Else EndIf Với hai phần vừa được trình bày ở trên thì có lẻ bạn đã hiểu được phần nào khối lệnh If và có thể sử dụng nó để giải quyết nhiều bài toán có yêu cầu điều kiện. Trong phần các khối If lồng nhau, chỗ lồi lõm là một kỹ thuật đúng. Tuy nhiên, khi có quá nhiều If được lồng vào nhau thì đoạn mã của bạn sẽ bị lõm vào rất sâu. Vì lý do này mà bước thang If ElseIf được dùng. ElseIf là một từ khóa của AutoIt, báo hiệu việc thẩm định điều kiện If tiếp theo. Cú pháp : If <điều kiện 1> Then <các câu lệnh 1> ElseIf <điều kiện 2> Then <các câu lệnh 2> ElseIf <điều kiện n> Then <các câu lệnh n> Else <các câu lệnh> EndIf Xin nói luôn với các bạn một điều, cú pháp này mới chính là cú pháp tổng quát nhất của khối lệnh If. Hai phần : “Dạng chung của If” và “Các if lồng nhau” thực chất được tách từ đây mà ra. Cho nên từ đây trở đi, khi sử dụng If bạn chỉ cần quan tâm đến phần này. Đến đây cũng xin giải thích lại để bạn hiểu và ghi nhớ. Các <điều kiện> được thẩm định từ trên xuống. Nếu <điều kiện 1> là True, thì <các câu lệnh 1> được thi hành. Ngược lại thì kiểm tra <điều kiện 2> , nếu đúng thì thi hành <các câu lệnh 2>. Việc ước lượng được xét dần đến <điều kiện n>. Nếu sau tất cả các lần thẩm định, không một điều kiện nào thỏa mãn và Else có tồn tại, thì các lệnh sau Else được thi hành. Ví dụ sau minh họa rõ việc dùng khối If tổng quát . Dim $var = '-5' 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 Chú ý Trong trường hợp câu lệnh If bạn sử dụng, chỉ có một lệnh sau Then và không có phần Else thì có thể viết gọn như sau : If <điều kiện> Then <câu lệnh> Ví dụ : $v='05' if StringIsDigit($v) Then MsgBox(0,'msg','It is a number') ; các lệnh không thuộc If có thể viết tiếp ở đây Trong các câu lệnh điều kiện (như If) thì việc dùng dấu ngoặc đơn ( ) là không thể thiếu nếu như bạn muốn thẩm định các điều kiện một cách chính xác, vài bài toán yêu cầu được kiểm tra với nhiều điều kiện lồng vào nhau, một kết quả không mong muốn có thể được đưa ra nếu như bạn không gom nhóm các điều kiện hoặc gom nhóm không đúng. Bạn xem ví dụ sau cho thấy cách thức xét điều kiện của khối If thứ nhất và khối If thứ hai là hoàn toàn khác nhau : . @AutoItPID ID của đoạn chương trình script đang chạy trong bộ nhớ @AutoItVersion Số phiên bản của AutoIt như 3.0.102.0 @AutoItX64 Trả về 1 nếu đang chạy dưới AutoIT phiên bản. như : <, >, <> , =, And, Or, Not) hoặc một biểu thức thường có trả về giá trị. Nếu điều kiện trả về True thì <các câu lệnh> sau Then được thực hiện. Nếu ngược lại thì <các. <điều kiện> Then <các câu lệnh> Else <các câu lệnh> EndIf Như trình bày ở trên ta thấy rằng, một khối lệnh If phải được bắt đầu với If Then và kết thúc với EndIf. <điều