1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hướng dẫn Ý nghĩa các hàm cơ bản trong AutoIt

Thảo luận trong 'Hướng dẫn - Bài tập căn bản' bắt đầu bởi Jkey C Phong, 7/9/15.

  1. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    Các hàm ở đây mình sẽ sắp xếp theo thứ tự chữ cái để các bạn có thể dễ dàng tìm đến những hàm mà mình cần một cách dễ dàng và nhanh chóng!

    Vì vẫn còn là một người đang trong quá trình học tập AutoIt nên đôi khi vẫn có vài hàm mình hiểu sai công dụng của nó, mong mọi người bỏ qua hoặc có thể liên hệ với Mod để sửa lại bài viết!

    Lưu ý: Bạn nào muốn giúp đỡ mình "update" cho những hàm mà mình chưa biết thì inbox Fb mình hoặc nhờ Mod sửa bài nhé, còn thắc mắc gì bạn inbox mình! Cái nào mình không biết mong các bạn đừng ném đá vì mình cũng học AutoIt chưa tới đâu cả!
    ----------------------------------------------------

    #
    Tác dụng của hai thằng này là tạo nên một khối chú thích, các bạn có thể tự do viết chú thích trong khối này mà không phải lo là sẽ bị lỗi.

    Cấu trúc:
    Mã (AutoIt):
    #comments-start
             ...
    #comments-end
    Ví dụ:
    Mã (AutoIt):
    #comments-start
             Chào mừng bạn đến với AutoIt
    #comments-end

    Thằng này mình không biết giải thích thế nào, nhưng theo mình hiểu thì nó là đơn giản hóa của việc "chèn" đoạn script A vào script B

    Cấu trúc:
    Mã (AutoIt):
    #include "Đường dẫn/Tên file"
    #include "Tên file"
     
    Ví dụ:
    Mã (AutoIt):
    #comments-start
             #include "C:\A.au3"
             #include "B.au3"
    #comments-end

    aKiD bổ sung: #include-once được sử dụng đối với những UDF và các file nhúng thêm (#include), để tránh các func trùng tên bị xuất hiện 2 lần.
    Ví dụ file chính của bạn có 1 func tên là _function1
    Và bạn có #include 'UDF.au3' mà trong UDF.au3 có func _function1 thì sẽ bị bỏ qua.

    Cái tên đã nói lên tất cả, khi bạn đặt thằng này lên đầu script nó sẽ ẩn đi icon trên thanh khay window của bạn! Ngoài ra bạn có thể sử dụng Opt(TrayIconHide,1), tác dụng của nó cũng giống #NoTrayIcon, tuy nhiên trong 1 khắc khi chạy kịch bản nó vẫn sẽ hiện icon trên khay, và ngược lại để hiện lại icon thì bạn dùng Opt("TrayIconHide", 0), hoặc sẽ xóa đi #NoTrayIcon.

    Cấu trúc:
    Mã (AutoIt):
    #NoTrayIcon           ; Ẩn icon trên khay hệ thống
    Opt("TrayIconHide,1") ; Ẩn icon trên khay hệ thống
    Opt("TrayIconHide,0") ; Hiện icon trên khay hệ thống
    Ví dụ:
    Mã (AutoIt):
    #NoTrayIcon
    #include <MsgBoxConstants.au3>

    Example()

    Func Example()
        ; Icon đã bị ẩn trên khay hệ thống
        MsgBox(0, "Học lập trình AutoIt", "Icon sẽ hiện lại khi bạn nhấp OK")

        ; Icon sẽ hiện lại trên khay hệ thống
        Opt("TrayIconHide", 0)

        ; Đợi 5s trước khi thoát script
        Sleep(5000)
    EndFunc

    Đăng ký một function khi AutoIt được chạy. Như chúng ta đã biết khi muốn chạy một function do chúng ta tự định nghĩa thì buộc chúng ta phải gọi nó, chẳng hạn bạn có function A() vậy khi muốn gọi nó thì bạn phải ghi A() trước function đấy. Nhưng Autoit đã cung cấp cho ta thêm một chức năng là đăng ký function, khi dùng thằng này chúng sẽ được chạy ngay khi mở chương trình.

    Cấu trúc:
    Mã (AutoIt):
    #OnAutoItStartRegister "Tên Function"
    Ví dụ:
    Mã (AutoIt):

    ; Chúng ta đã đăng ký 2 function là A và B.

    #OnAutoItStartRegister "A"
    #OnAutoItStartRegister "B"

    Sleep(1000)

    Func A()
        MsgBox(0,"Học lập trình AutoIt","Function A được gọi lần đầu")
    EndFunc

    Func B()
        MsgBox(0,"Học lập trình AutoIt","Function B được gọi lần thứ 2")
    EndFunc
     

    Theo như file help thì đây là
    Theo ví dụ thì
    Mã (AutoIt):
    #pragma compile(Out, myProg.exe)
    ; Uncomment to use the following icon. Make sure the file path is correct and matches the installation of your AutoIt install path.
    ; #pragma compile(Icon, C:\Program Files\AutoIt3\Icons\au3.ico)
    #pragma compile(ExecLevel, highestavailable)
    #pragma compile(Compatibility, win7)
    #pragma compile(UPX, False)
    #pragma compile(FileDescription, myProg - a description of the application)
    #pragma compile(ProductName, myProg)
    #pragma compile(ProductVersion, 3.7)
    #pragma compile(FileVersion, 3.7.0.0, 3.7.100.201) ; The last parameter is optional.
    #pragma compile(LegalCopyright, © Joe Bloggs)
    #pragma compile(LegalTrademarks, '"Trademark something, and some text in "quotes" etc...')
    #pragma compile(CompanyName, 'Joe Bloggs & Co')
    Ở đây ta có thể hiểu là nó tùy chỉnh các thông tin, tùy chọn khi ra compile script thành file thực thi

    aKiD bổ sung: Khi sử dụng keyword này. Script sẽ chạy dưới quyền cao nhất (admin), vấn đề phân cấp từ win 8 trở đi mới cảm thấy rõ rệt. Tuy nhiên khi bạn chạy script có các câu lệnh về chỉnh sửa file hệ thống chẳng hạn, thì script của bạn phải được phân cấp cao hơn để lệnh đó có tác dụng. Nôm na hiểu là bạn sử dụng Run as administrator ở menu chuột phải khi chạy các phần mềm vậy
    [​IMG]

    A
    Tính giá trị tuyệt đối của một số, bạn nào học toán thì biết nhé.

    Cấu trúc:
    Mã (AutoIt):
    Abs(Số cần tính)
    ; Với các giá trị không phải là số sẽ trả về 0
    Ví dụ:
    Mã (AutoIt):
    $GiaTriTuyetDoi = Abs(-12)
    Msgbox(0,"Học lập trình AutoIt",$GiaTriTuyetDoi) ; Kết quả sẽ trả về 12

    Theo mình hiểu thì nó là function hỗ trợ tính Shift - Sin,Cos,Tan trong máy tính fx-570 ấy.

    Cấu trúc:
    Mã (AutoIt):
    ASin(Bao gồm các số -1 <= x <= 1)
    ACos(Bao gồm các số -1 <= x <= 1)
    ATan(Bất kỳ số nào hợp lệ)
    ; P/s: Phần ATan mình không rõ lắm nhé! Vì quên mất rồi!
    Ví dụ:
    Mã (AutoIt):
    ; Ví dụ về ASin
    $ASin = ASin(0.5)
    Msgbox(0,"Học lập trình AutoIt",$ASin)

    ; Ví dụ về ACos
    $ACos = ACos(0.5)
    Msgbox(0,"Học lập trình AutoIt",$ACos)

    ; Ví dụ về ATan
    $ATan = ATan(0.5)
    Msgbox(0,"Học lập trình AutoIt",$ATan)

    ; Ngoài ra để chuyển sang độ thì các bạn làm như sau
    #include <Math.au3>
    $ACos = _Degree(ACos(-1))
    Msgbox(0,"Học lập trình AutoIt",$ACos & " độ") ; Kết quả là: 180 độ

    ; Các thằng khác cũng tương tự
    ; Ngoài ra các bạn đừng hỏi mình tại sao không có ACot nhé ~.~ Còn tại sao không có thì các bạn về học lại chương trình THPT để thầy cô giải thích nhé!
     

    aKiD bổ sung: Theo như lời của LeeSai. AdlibRegister có chức năng như sau
    Vậy AdlibUnRegister có chức năng là gỡ bỏ hàm định trước đó

    And ở đây có nghĩa là bắt buộc cả 2 về đều phải đúng với điều kiện đề ra. Nếu bạn đặt điều kiện cho 2 vế mà 2 vế đều đúng thì sẽ True, nếu một trong 2 về sai thì sẽ False.

    Cấu trúc:
    Mã (AutoIt):
    $a And $b
    ; Trong đó $a và $b là một số nào đó
    Ví dụ:
    Mã (AutoIt):
    $a = 1
    $b = 2
    if $a > 0 and $b > 0 Then ; And ở đây bắt buộc cả 2 bên đều phải đúng
        Msgbox(0,"Học lập trình AutoIt","Cả a và b đều thỏa điều kiện > 0")
    ElseIf $a > 0 and $b < 0 Then ; And ở đây là False vì $a > 0 nhưng $b không nhỏ hơn 0 nên sai
        Msgbox(0,"Học lập trình AutoIt","Không thỏa điều kiện trên")
    Else ; Không thỏa điều kiện nào
        Msgbox(0,"Học lập trình AutoIt","Không thỏa điều kiện nào cả")
    EndIf

    Trả về ASCII code của ký tự đó. Tham khảo thêm về bảng mã ASCII tại đây.

    Cấu trúc:
    Mã (AutoIt):
    Asc("Ký tự cần trả về ASCII code")
    ; Lưu ý chỉ được phép một ký tự
    Ví dụ:
    Mã (AutoIt):
    $KyTu = "H"
    $ASCII_Code = Asc($KyTu)
    Msgbox(0,"Học lập trình Autoit",$ASCII_Code)

    Trả về Unicode của ký tự đó.

    Cấu trúc:
    Mã (AutoIt):
    AscW("Ký tự cần trả về Unicode code")
    ; Lưu ý chỉ được phép một ký tự ( Giống Asc )
    Ví dụ:
    Mã (AutoIt):
    $KyTu = "H"
    $Unicode_Code = AscW($KyTu)
    Msgbox(0,"Học lập trình Autoit",$Unicode_Code)

    aKiD bổ sung: Assign cơ bản là gán một biến bằng tên với dữ liệu.
    Hàm này đi cùng với Eval để trả về dữ liệu khi gọi một var.

    Ví dụ:
    Mã (AutoIt):
    $a = 'Chuỗi ký tự'  ; Ta có thể gọi chuỗi ký tự trực tiếp bằng $a
    ; Còn Assign("a","Chuỗi ký tự") -> thì ta gọi chuỗi bằng Eval("a")
    ; Bạn nào có cách giải thích đơn giản hơn có thể bổ sung.
    Cấu trúc:
    Mã (AutoIt):
    Assign("Tên biến", "Dữ liệu", [flag = 0])
    #comments-start
        Các flag khác:
             + 0 : (Mặc định) Tạo biến khi biến ấy chưa có
             + 1 : Phạm vi của biến là Local
             + 2 : Phạm vi của biến là Global
             + 4 : Fail nếu biến không tồn tại
    #comments-end
    Ví dụ:
    Mã (AutoIt):
    Assign("LapTrinh","Chào mừng bạn đến với AutoIt")        ; Mặc định flag = 0
    Msgbox(0,"",Eval("LapTrinh"))                            ; Eval là gì thì các bạn tìm hiểu sau nhé!

    Một số thư viện phục vụ các bạn trong việc code.

    Mã (AutoIt):
    #include <ColorConstants.au3>
    #include <Constants.au3>
    #include <DirConstants.au3>
    #include <FileConstants.au3>
    #include <FontConstants.au3>
    #include <GUIConstantsEx.au3>            ; Trong đó GUIConstantsEx.au3 chứa những thằng khác
        + #include <AVIConstants.au3>
        + #include <ButtonConstants.au3>
        + #include <ComboConstants.au3>
        + #include <DateTimeConstants.au3>
        + #include <EditConstants.au3>
        + #include <GUIConstantsEx.au3>
        + #include <ListboxConstants.au3>
        + #include <ListViewConstants.au3>
        + #include <ProgressConstants.au3>
        + #include <RichEditConstants.au3>
        + #include <SliderConstants.au3>
        + #include <StaticConstants.au3>
        + #include <TabConstants.au3>
        + #include <TreeViewConstants.au3>
        + #include <UpdownConstants.au3>
        + #include <WindowsConstants.au3>
    #include <InetConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <StringConstants.au3>
    #include <WindowsConstants.au3>

    Tham khảo tại đây

    Cái này khi nào có thời gian mình giúp nhé! Vừa rồi nếu bạn nào đã đọc #NoTrayIcon thì bạn thấy mình đã giới thiệu thêm về một thằng là Opt("TrayIconHide",0), nó cũng chính là một phần trong AutoItSetOption nhé! Nếu bạn muốn tìm hiểu trước thì cứ việc mở file help ra để xem những Opt còn lại.

    aKiD bổ sung: Trả về tiêu đề của cửa sổ AutoIT
    * Cần giải thích thêm

    aKiD bổ sung: Đặt tiêu đề của cửa sổ AutoIT
    * Cần giải thích thêm

    B
    Phát ra tiếp beep. * Vãi linh hồn beep *

    Cấu trúc:
    Mã (AutoIt):
    Beep ( [Tần số = 500], [Thời gian = 1000])
    Ví dụ:
    Mã (AutoIt):
    Beep(700, 1000)

    Trả về nhị phân.

    Cấu trúc:
    Mã (AutoIt):
    Binary("Chuỗi cần trả về hệ nhị phân")
    Ví dụ:
    Mã (AutoIt):
    $Binary = Binary("Chào mừng bạn đến với AutoIt")
    Msgbox(0,"Học lập trình AutoIt",$Binary)

    Trả về số byte của chuỗi Binary

    Cấu trúc:
    Mã (AutoIt):
    BinaryLen("Chuỗi binary")
    Ví dụ:
    Mã (AutoIt):
    $Binary        = Binary("Hello AutoIt")
    $BinaryLen     = BinaryLen($Binary)
    Msgbox(0,"Học lập trình AutoIt",$BinaryLen)

    Tách byte trong chuỗi nhị phân

    Cấu trúc:
    Mã (AutoIt):
    BinaryMid(Chuỗi, Vị trí bắt đầu, [Vị trí kết thúc])
    #comments-start
    Trong đó:
         + Chuỗi: lấy từ Binary()
         + Vị trí bắt đầu được tính từ trái qua phải, bắt đầu 0x trở đi (1 = first byte)
         + Vị trí kết thúc: (Option) Nếu không đặt thì nó sẽ lấy hết cả chuỗi
    #comments-end
    Ví dụ:
    Mã (AutoIt):
    $Binary  = Binary("AutoIt")
    ; Kết quả là: 0x4175746F4974
    $Extract = BinaryMid($Binary,1,3)
    ; Vị trí bắt đầu là 1, tương ứng với chuỗi Binary trên là 41
    ; Vị trí kết thúc là 3, tương ứng với chuỗi Binary trên là 74
    ; Từ đó chúng ta có thể đoán được kết quả là 0x417574
    Msgbox(0,"Học lập trình AutoIt",$Extract)

    Chuyển đổi từ hệ nhị phân sang chuỗi.

    Cấu trúc:
    Mã (AutoIt):
    BinaryToString("Chuỗi", [flag = 1])
    #comments-start
    Trong đó:
           + Chuỗi: bao gồm các ký tự chữ cái, số và các ký tự đặc biệt
           + Flag:
                     - 1: (Mặc định) Chuyển hệ nhị phân sang mã ANSI
                     - 2: Chuyển hệ nhị phân sang mã UTF16 Little Endian
                     - 3: Chuyển hệ nhị phân sang mã UTF16 Big Endian
                     - 4: Chuyển hệ nhị phân sang mã UTF8

    Giá trị trả về:
    . Success: Là một chuỗi được chuyển từ hệ nhị phân sang
    . Failure: Là một chuỗi rỗng và được đặt macro @Error
    #comments-end

     
    Ví dụ:
    Mã (AutoIt):
    #include <MsgBoxConstants.au3>

    Example()

    Func Example()
        ; Define the string that will be converted later.
        ; NOTE: This string may show up as ?? in the help file and even in some editors.
        ; This example is saved as UTF-8 with BOM.  It should display correctly in editors
        ; which support changing code pages based on BOMs.
        Local Const $sString = "Jkey C Phong"
        ; Temporary variables used to store conversion results.  $dBinary will hold
        ; the original string in binary form and $sConverted will hold the result
        ; afte it's been transformed back to the original format.
        Local $dBinary = Binary(""), $sConverted = ""

        ; Convert the original UTF-8 string to an ANSI compatible binary string.
        $dBinary = StringToBinary($sString)

        ; Convert the ANSI compatible binary string back into a string.
        $sConverted = BinaryToString($dBinary)

        ; Display the resulsts.  Note that the last two characters will appear
        ; as ?? since they cannot be represented in ANSI.
        DisplayResults($sString, $dBinary, $sConverted, "ANSI")

        ; Convert the original UTF-8 string to an UTF16-LE binary string.
        $dBinary = StringToBinary($sString, 2)

        ; Convert the UTF16-LE binary string back into a string.
        $sConverted = BinaryToString($dBinary, 2)

        ; Display the resulsts.
        DisplayResults($sString, $dBinary, $sConverted, "UTF16-LE")

        ; Convert the original UTF-8 string to an UTF16-BE binary string.
        $dBinary = StringToBinary($sString, 3)

        ; Convert the UTF16-BE binary string back into a string.
        $sConverted = BinaryToString($dBinary, 3)

        ; Display the resulsts.
        DisplayResults($sString, $dBinary, $sConverted, "UTF16-BE")

        ; Convert the original UTF-8 string to an UTF-8 binary string.
        $dBinary = StringToBinary($sString, 4)

        ; Convert the UTF8 binary string back into a string.
        $sConverted = BinaryToString($dBinary, 4)

        ; Display the resulsts.
        DisplayResults($sString, $dBinary, $sConverted, "UTF8")
    EndFunc   ;==>Example

    ; Helper function which formats the message for display.  It takes the following parameters:
    ; $sOriginal - The original string before conversions.
    ; $dBinary - The original string after it has been converted to binary.
    ; $sConverted- The string after it has been converted to binary and then back to a string.
    ; $sConversionType - A human friendly name for the encoding type used for the conversion.
    Func DisplayResults($sOriginal, $dBinary, $sConverted, $sConversionType)
        MsgBox($MB_SYSTEMMODAL, "", "Original:" & @CRLF & $sOriginal & @CRLF & @CRLF & "Binary:" & @CRLF & $dBinary & @CRLF & @CRLF & $sConversionType & ":" & @CRLF & $sConverted)
    EndFunc   ;==>DisplayResults

    Không biết => Không giải thích.

    Không biết => Không giải thích.

    Không biết => Không giải thích.

    Không biết => Không giải thích.

    Không biết => Không giải thích.

    Không biết => Không giải thích.

    Enable và Disable chuột và bàn phím.

    Cấu trúc:
    Mã (AutoIt):
    BlockInput([flag])
    ; Flag:
    ;         + 1: Disable chuột và bàn phím
    ;         + 2: Enable chuột và bàn phím

    ; Với một số window thì bắt buộc các bạn phải chạy soft bằng quyền Admin mới có thể thực hiện được hàm này.
    ; Lưu ý: Vô tác dụng với tổ hợp phím Ctrl + Alt + Delete.
    Ví dụ:
    Mã (AutoIt):
    BlockInput(1)        ; Khóa bàn phím và chuột
    Sleep(5000)            ; Nghỉ trong 5 giây
    BlockInput(0)        ; Mở khóa bàn phím và chuột
    Msgbox(0,"[Jkey C Phong] - Học lập trình AutoIt","Bạn đã mở khóa chuột và bàn phím thành công!")

    Cho / Không cho phép người sử dụng thoát khỏi phần mềm bằng icon trên khay hệ thống. Khi bạn chạy chương trình, ở khay hệ thống sẽ xuất hiện icon của soft đấy, thông thường bạn có thể chuột phải vào biểu tượng và chọn quit, nhưng nếu bạn sử dụng thằng Break này thì người sử dụng không thể thực hiện thao tác trên để thoát phần mềm.

    Cấu trúc:
    Mã (AutoIt):
    Break(flag)
    ; Flag:
    ;         1: (Mặc định) Người sử dụng có thể thoát
    ;         0: Người sử dụng không thể thoát
    Ví dụ:
    Mã (AutoIt):

    aKiD bổ sung: ByRef theo ý hiểu của mình tức là khi gọi một func thì ta truyền tham số vào. Với những function bình thường sẽ trả về kết quả thông qua return
    Tuy nhiên Byref thì khác, Byref giúp ta truyền tham số vào, sau đó xử lý các tham số tùy thuộc vào function. Và sau khi gọi func đó các tham số đó sẽ thay đổi theo ý bạn
     
    Chỉnh sửa cuối: 9/9/15
  2. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    C
    Xem qua ví dụ thì nó gọi đến một function nào đấy, và bạn hoàn toàn có thể truyền giá trị vào cho function đấy qua thằng Call này. Xem qua exam là thế, còn thực tế ra sao thì ai biết góp ý nhé.

    Cấu trúc:
    Mã (AutoIt):
    Call("Function","Param1","Param2","ParamN")
    ; Trong đó:
    ;         + Function: tên func mà bạn muốn call
    ;         + Param1 - 2 - N: truyền giá trị vào Function
    Ví dụ:
    Mã (AutoIt):
    ; Ví dụ sơ cấp
    Call("Vi_Du_1")

    Func Vi_Du_1()
        MsgBox(0, "Jkey - Lập trình AutoIt", "Bạn đã gọi thằng Vi_Du_1")
    EndFunc   ;==>Vi_Du_1

    ; Ví dụ trung cấp
    Call("Vi_Du_2", "Call đã truyền Param1 vào Func của bạn")

    Func Vi_Du_2($Param1)
        MsgBox(0, "Jkey - Lập trình AutoIt", $Param1)
    EndFunc   ;==>Vi_Du_2

    ; Ví dụ cao cấp
    Call("Vi_Du_3", "1", "2")

    Func Vi_Du_3($Param1, $Param2)
        MsgBox(0, "Jkey - Lập trình AutoIt", "Param1 = 1" & @CRLF & "Param2 = 2" & @CRLF & "Kết quả của 2 thằng Param trên là : " & $Param1 + $Param2)
    EndFunc   ;==>Vi_Du_3

    Như cái tên của nó, Lựa chọn...Trường hợp...Kết thúc lựa chọn.

    Cấu trúc:
    Mã (AutoIt):
    Select
        Case Trường hợp 1
            ...
        Case Trường hợp 2
            ...
        Case Trường hợp N
            ...
        Case Else
            ...
    EndSelect

    ; Trong đó trường hợp theo ý hiểu của mình thì nó là điều kiện để "Select"
    ; Chẳng hạn chúng ta có một string là ABC, nếu phần điều kiện ấy giống với string thì sẽ là True, ngược lại là False và nó sẽ kiểm tra hết tất cả các "Case" còn lại.
    Ví dụ:
    Mã (AutoIt):
    $String = "ABC"

    Select
        Case $String = "ACD"
            Msgbox(0,"Jkey - Lập trình AutoIt","Trường hợp Case đầu tiên được chọn")
        Case $String = "ASD"
            Msgbox(0,"Jkey - Lập trình AutoIt","Trường hợp Case thứ 2 được chọn")
        Case $String = "ABC"
            Msgbox(0,"Jkey - Lập trình AutoIt","Trường hợp Case thứ 3 được chọn")
        Case Else
            Msgbox(0,"Jkey - Lập trình AutoIt","Không có Case nào được chọn")
    EndSelect

    Nó khá giống với thằng Select...Case...EndSelect nên mình sẽ không giải thích lại, nếu bạn nào không hiểu có thể pm những người giỏi để giải thích và hiểu rõ hơn về thằng này.

    Cấu trúc:
    Mã (AutoIt):
    Switch Biểu Thức                ; Chẳng biết dùng từ thế nào nên viết biểu thức nhé!
        Case Điều kiện A To Điều kiện B
            ...
        Case Điều kiện C To Điều kiện D
            ...
        Case Điều kiện E To Điều kiện F
            ...
        Case Else
            ...
    EndSwitch
    Ví dụ:
    Mã (AutoIt):
    #comments-start

        Số 5000 thuộc dãy số nào trong đây:
            A. 1000 --> 2000
            B. 2000 --> 3000
            C. 3000 --> 4000
            D. 4000 --> 5000
            E. Không thuộc dãy số nào
     
        ===================================
     
        - Xem đến đây chắc ai cũng biết đáp án là câu D rồi nhỉ?!
        - Vậy nếu như bây giờ các bạn muốn giải bài này trên AutoIt thì sao?!
        - Chẳng lẽ lại dùng If...ElseIf...Else...Endif???
        - No,... AutoIt cung cấp cho bạn một giải pháp đơn giản mà hiệu quả hơn
        - Đó là sử dụng thằng Switch...Case...CaseElse...EndSwitch
     
        -----------------------------------
     
        - Đầu tiên chúng ta đặt biến $Number có giá trị là 5000 ( đề bài cho )
        - Tiếp theo, để Switch biết được phải đi "kiểm tra" thằng nào thì chúng ta phải giúp nó bằng cách: Switch $Number
        - Như thế thì thằng Switch sẽ biết phải đi "kiểm tra" thằng $Number
        - Song,... Như vậy Switch vẫn chưa biết phải kiểm tra gì cả
        - Thế là chúng ta phải đặt trường hợp cho nó bằng: Case ... To ...
        - Theo như đề bài chúng ta có 5 đáp án, vậy code thế nào cho 5 đáp án đó đây???
        - Đơn giản chúng ta sẽ chia Case thành 5 trường hợp bao gồm: 1000 To 2000, 2000 To 3000, 3000 To 4000, 4000 To 5000 và cuối cùng là CaseElse cho câu E
        - "To" ở đây nghĩa là đến, 1000 To 2000 == 1000 đến 2000
        - Xem ví dụ bên dưới để hiểu rõ
     
        - Do thằng này mình không biết giải thích thế nào cho ngắn gọn nên phải dùng cách này nhé!
    #comments-end


    $Number = 5000
    Switch $Number
        Case 1000 to 2000    ; Chúng ta đặt trường hợp từ 1000 --> 2000
            Msgbox(0,"Jkey - Lập trình AutoIt","Số 5000 không thuộc dãy số từ 1000 --> 2000")
        Case 2000 to 3000    ; Chúng ta đặt trường hợp từ 2000 --> 3000
            Msgbox(0,"Jkey - Lập trình AutoIt","Số 5000 không thuộc dãy số từ 2000 --> 3000")
        Case 3000 to 4000    ; Chúng ta đặt trường hợp từ 3000 --> 4000
            Msgbox(0,"Jkey - Lập trình AutoIt","Số 5000 không thuộc dãy số từ 5000 --> 4000")
        Case 4000 to 5000    ; Chúng ta đặt trường hợp từ 4000 --> 5000
            Msgbox(0,"Jkey - Lập trình AutoIt","Số 5000 không thuộc dãy số từ 4000 --> 5000")
        Case Else
            Msgbox(0,"Jkey - Lập trình AutoIt","Số 5000 không thuộc dãy số nào!")
    EndSwitch

    Đóng - mở ổ đĩa.

    Cấu trúc:
    Mã (AutoIt):
    CDTray("Tên ổ đĩa","Trạng thái")
    ; Tên ổ đĩa: D: ; E:
    ; Trạng thái:
    ;                    + Open: Mở ổ đĩa
    ;                    + Close: Đóng ổ đĩa
    Ví dụ:
    Mã (AutoIt):
    CDTray("E:", "open") ; Mở ổ đĩa E

    hoangdangtrungvn bổ sung: Dùng để làm tròn số.

    Cấu trúc:
    Mã (AutoIt):
    Ceiling("Số muốn làm tròn")
    Ví dụ:
    Mã (AutoIt):
    $A = Ceiling(4.8)
    Msgbox(0,"Học lập trình AutoIt",$A)

    Chắc các bạn đã biết tới thằng Asc rồi nhỉ, nếu bạn nào chưa biết có thể tìm tới hàm Asc ở mục A để tìm hiểu công dụng của nó nhé. Như bạn đã biết, Asc chuyển một ký tự thành ASCII code, vậy muốn chuyển ngược lại thì sao? Chr sẽ giúp bạn biến ước muốn thành sự thật.

    Cấu trúc:
    Mã (AutoIt):
    Chr("ASCII Code")
    ; ASCII Code: Được lấy từ Asc
    Ví dụ:
    Mã (AutoIt):
    $Char = Chr(48)
    Msgbox(0,"Jkey C Phong",$Char)

    ; Ví dụ khác
    $Asc = Asc("H")
    $Chr = Chr($Asc)
    Msgbox(0,"Jkey C Phong",$Chr)

    Giống với Chr, thay vì Chr là ngược lại của Asc, thì ChrW là ngược lại của AscW. Ai thắc mắc AscW là gì thì kéo lên mục A tìm hàm AscW nhé.

    Cấu trúc:
    Mã (AutoIt):
    ChrW(Unicode Code)
    ; Unicode Code: là các ký tự từ 0 - 65535
    ; Ví dụ: 65 = A

    Ví dụ:
    Mã (AutoIt):
    $Char = ChrW(65)
    Msgbox(0,"Lập trình AutoIt - Jkey C Phong",$Char)

    ClipPut: Ý nghĩa của nó là copy, bạn nào hỏi mình copy là gì thì học lại giùm nhé.
    ClipGet: Ý nghĩa của nó là past, copy rồi past ấy ~~, phán past là gì thì đọc lại phía trên.

    Cấu trúc:
    Mã (AutoIt):
    ClipPut("Dữ liệu cần copy")
    ClipGet("Xuất ra dữ liệu đã copy trước đó")
    Ví dụ:
    Mã (AutoIt):
    $Data = "Jkey C Phong - Chào bạn, rất vui khi bạn học AutoIt"

    ClipPut($data)

    $Past = ClipGet()
    Msgbox(0,"Học AutoIt",$Past)

    Bạn cứ hiểu nó giống Msgbox, thay vì Msgbox xuất hiện ra một hộp thoại thì ConsoleWrite sẽ ghi vào thanh output của AutoIt.

    Cấu trúc:
    Mã (AutoIt):
    ConsoleWrite("Dữ liệu cần xuất ra ở output")
    Ví dụ:
    Mã (AutoIt):
    ConsoleWrite("Hello")
    Sleep(5000)
    Hình ảnh cho ví dụ trên:
    [​IMG]

    Theo mình nó giống ConsoleWrite, đều ghi vào thanh output của AutoIt. Nhưng khác ở đây, hàm này có chức năng báo lỗi.

    Cấu trúc:
    Mã (AutoIt):
    ConsoleWriteError("Dữ liệu cần xuất ra ở output")
    Ví dụ:
    Mã (AutoIt):
    Local $sString = "Chuong trinh nay da bi loi"
    ConsoleWriteError($sString)
    Sleep(5000)
    Hình ảnh cho ví dụ trên:
    [​IMG]

    hoangdangtrungvn bổ sung: Là từ khóa để khai báo biến, hằng.

    Cái này mình không biết, ai biết thì pm Mod để sửa hoặc inbox facebook mình để cập nhật lại nhé.

    Click chuột không chiếm chuột -> Chắc bác nào cũng tìm hiểu thằng này đầu tiên vì toàn thấy dân Boom vào hỏi mấy cái này.

    Cấu trúc:
    Mã (AutoIt):
    ControlClick("Tiêu đề","Text","ControlID","Button = left","Clicks = 1","Tọa độ X","Tọa độ Y")
    #comments-start
        Trong đó:
            + Tiêu đề    : Tên cửa sổ muốn gửi click chuột
            + Text        : ?
            + ControlID    : ?
            + Button    : Left - Right, Nếu bạn để Left, thì nó sẽ nhấp chuột trái, ngược lại sẽ nhấp chuột phải
            + Clicks    : Số lần click, mặc định là 1
            + Tọa độ X,Y: Tọa độ sẽ click, lấy tọa độ bằng AutoIt Window Info
    #comments-end
    Ngoài ra ở phần button các bạn có những option sau:
    [​IMG]

    Ví dụ:
    Mã (AutoIt):
    ControlClick("Boom","","","left",1,180,200)
    ; Tên cửa sổ là Boom
    ; Text và ControlID mình để trống
    ; Button mình để là left
    ; Số lần click là 1
    ; Tọa độ X là 180
    ; Tọa độ Y là 200

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Ẩn control.

    Cấu trúc:
    Mã (AutoIt):
    ControlHide("Tiêu đề","Văn bản","ControlID")
    ; Trong đó:
    ;    Tiêu đề: Tên cửa sổ chứa control bạn muốn hide
    ;    Văn bản: Không biết -> Mạn phép không giải thích
    ;    ControlID: Class của control/... bạn muốn hide, có thể lấy được từ Autoit Window Info
    ; P.s: Phần ControlID mình diễn giải theo ý hiểu của mình!
    Ví dụ:
    Mã (AutoIt):
    Run("notepad.exe")                             ; Mở Notepad
    $Title = WinWait("[CLASS:Notepad]", "", 10)    ; Class ở đây là "dấu hiệu" để nhận biết Notepad
    ControlHide($Title,"","Edit1")                 ; Hide khung text trong Notepad, khi bạn nhập chữ vào sẽ không thấy gì
    Sleep(5000)                                    ; Sau 5 giây
    WinClose($Title)                               ; Đóng Notepad

    Inbox Facebook mình hoặc nhờ Mod bổ sung thêm nếu bạn biết hàm này mang ý nghĩa gì, nếu bạn có thể thì cung cấp luôn cách sử dụng hàm này và cho một ví dụ đơn giản để người học hiểu hơn về hàm này.

    Cho phép bạn thay đổi kích thước, thay đổi tọa độ (x,y) của một control nào đó.

    Cấu trúc:
    Mã (AutoIt):
    ControlMove("Tiêu đề", "Văn bản", "ControlID", "Tọa độ X", "Tọa độ Y", "Chiều rộng", "Chiều cao")
    ; Trong đó:
    ;    + Tiêu đề: Tên cửa số chứa control muốn Move
    ;    + Văn bản: * Cần người bổ sung
    ;    + ControlID: Class của control/... bạn muốn move, có thể lấy được từ Autoit Window Info
    ;    + Tọa độ X - Y: Là tọa độ điểm đặt của control
    ;        Ví dụ: Vị trí của một khung Input là (100,50)
    ;    + Chiều rộng - cao: Cái này khỏi giải thích nhé
    ; P.s: Phần ControlID mình diễn giải theo ý hiểu của mình!
    Ví dụ:
    Mã (AutoIt):
    Run("notepad.exe")
    $Title = WinWait("[CLASS:Notepad]", "", 10)
    Sleep(3000)
    ControlMove($Title,"","Edit1",100,70,500,200) ; Di chuyển control này đến vị trí (100,70) và re-size chiều rộng = 500, chiều cao = 200
    Sleep(4000)
    WinClose($Title)

    Không giải thích, các bạn có thể vào file help của AutoIt để đọc, nếu bạn nào muốn đóng góp thì hãy soạn ra Word và gửi cho mình qua facebook: Jkey C Phong (các bạn kèm theo một tin nhắn nào đấy để mình biết các bạn trên diễn đàn này mà add friend nhé)

    Chắc hẳn các bạn đã biết đến một hàm mà dân mạng hay gọi là click không chiếm chuột - ControlClick ( Nếu bạn nào chưa biết ControlClick là gì có thể Ctrl+F tìm từ khóa ControlClick nhé ). ControlSend cũng tương tự như ControlClick, nó cho phép bạn gửi những thao tác từ bàn phím. Hàm này khá giống hàm Send nhé.

    Cấu trúc:
    Mã (AutoIt):
    ControlSend("Tiêu đề", "Văn bản", "ControlID", "Ký tự muốn gửi", [Flag = 0])
    #comments-start
        Trong đó:
        + Tiêu đề: Tên cửa số muốn gửi phím
        + Văn bản: * Cần người bổ sung
        + ControlID: Class của control/... bạn muốn gửi phím, có thể lấy được từ Autoit Window Info
        + Ký tự muốn gửi: nhập ký tự muốn gửi
        + Flag (Lưu ý):
            - 0:    Gửi tất cả những ký tự và có thể gửi các phím lên, xuống, trái, phải, shift, ...
                    Tuy nhiên flag này có chức năng gửi các phím Left, Right, Down, Up,...
                    Muốn gửi các phím ấy chúng ta phải đặt chúng trong {...}
             
                    VD: Gửi phím:
                            . Left:     {LEFT}
                            . Right:     {RIGHT}
                            . Up:        {UP}
                            . Down:        {DOWN}
                            . Tab:        {TAB}

            - 1:    Khi sử dụng flag này bạn chỉ có thể gửi các phím BÌNH THƯỜNG không thể gửi các phím lên, xuống, trái, phải, ...
        P.s: Phần ControlID mình diễn giải theo ý hiểu của mình!
    #comments-end
    Ví dụ:
    Mã (AutoIt):
    Run("notepad.exe")
    $Title = WinWait("[CLASS:Notepad]", "", 10)
    Sleep(2000)
    ControlSend($Title,"","","Hello! Welcome To AutoIt",1)
    ControlSend($Title,"","","{ENTER}Da gui Enter",0)    ; Gửi phím Enter
    Sleep(2000)
    WinClose($Title)

    Đọc ví dụ có vẻ hiểu nhưng diễn giải thế nào thì chưa rõ lắm nên cần lắm người bổ sung, pm facebook: Jkey C Phong và gửi mình bản Word có lời giải thích, ví dụ, cấu trúc cụ thể của hàm này nhé.

    Ngược lại với ControlHide, thay vì làm cho control bị hide đi thì ControlShow sẽ làm ngược lại điều đó.

    Cấu trúc:
    Mã (AutoIt):
    ControlShow("Tiêu đề", "Văn bản", "ControlID")
    ; Trong đó:
    ;    + Tiêu đề: Cửa sổ chứa control muốn show
    ;    + Văn bản: * Cần người bổ sung
    ;    + ControlID: Class của một control/... nào đấy mà bạn muốn show
    ; P.s: ControlID nói theo cách hiểu của mình, nếu ai thấy sai có thể góp ý để mình update
    Ví dụ:
    Mã (AutoIt):
    Run("notepad.exe")                             ; Mở Notepad
    $Title = WinWait("[CLASS:Notepad]", "", 10)    ; Class ở đây là "dấu hiệu" để nhận biết Notepad
    ControlHide($Title,"","Edit1")                 ; Hide khung text trong Notepad, khi bạn nhập chữ vào sẽ không thấy gì
    Sleep(5000)                                    ; Sau 5 giây
    ControlShow($Title,"","Edit1")                 ; Show lại khung text trong Notepad, bây giờ bạn sẽ thấy được phần chữ mà bạn gõ vào
    WinClose($Title)                               ; Đóng Notepad

    Pm facebook: Jkey C Phong gửi bản Word chứa lời giải thích, cấu trúc, ví dụ của hàm này nhé, mình sẽ update và bổ sung tên của bạn đã giúp mình.

    Hàm tính Cos, hỏi Cos là gì thì mình xin đập đầu chết tại chỗ.

    Cấu trúc:
    Mã (AutoIt):
    Cos("Số muốn tính")
    Ví dụ:
    Mã (AutoIt):
    $Cos = Cos(1)
    Msgbox(0,"Học lập trình AutoIt - Jkey C Phong",$Cos)

    D
    Nếu bạn đã từng học lập trình các ngôn ngữ khác như (c#,c++,c/c++,...) thì đều biết về kiểu dữ liệu. VD: string, int (int32, int64), double,...

    Thế tại sao khi ta lập trình trong AutoIt thì đâu có cần khai báo kiểu dữ liệu đâu nào? Câu trả lời cho vấn đề này là: AutoIt tự động "phân loại" kiểu dữ liệu cho chúng ta --> Một cái rất tiện lợi mà mình rất thích ở AutoIt.

    Kiểu dữ liệu và phạm vi của nó trong AutoIt:
    [​IMG]

    Chuyển chuỗi Hex sang số thập lục phân(Hexadecimal)

    Cấu trúc:
    Mã (Text):
    Dec("Mã hex",[flag = 0])
    ; Flag:
    ;        + 0: (Mặc định) Là một số nguyên, nếu kết quả trả về trong 32bit thì nó sẽ trả về số nguyên - 32bit và ngược lại nếu ở phạm vi 64bit thì trả về số nguyên - 64bit
    ;        + 1: Là một số nguyên - 32bit
    ;        + 2: Là một số nguyên - 64bit
    ;        + 3: Là một số nguyên - double ~> Không hiểu cái này lắm
    Ví dụ:
    Mã (AutoIt):
    $Dec = Dec("FFF")
    Msgbox(0,"Học lập trình AutoIt",$Dec) ; Kết quả là 4095

    Đặt giá trị mặc định nào đó, thường được các Programmers sử dụng trong UDF.

    *Cần người bổ sung thêm giải thích cho hàm này.
    *Inbox Facebook: Jkey C Phong


    Cấu trúc:
    Mã (AutoIt):
    Default
    ; Nhiêu đó thôi :)
    Ví dụ:
    Mã (AutoIt):
    Hello(Default,"Xin chào")
    Func Hello($Flag = Default, $String = "")
        If $Flag = Default Then
            Msgbox(2,"",$String)
        Else
            Msgbox($Flag,"",$String)
        EndIf
    EndFunc

    Copy tất cả thư mục bao gồm các thư mục con bên trong. Nói tóm gọn dễ hiểu hơn là copy cả cây thư mục.

    P/s: cây thư mục là gì các bạn lên google hỏi! Hoặc sách tin học lớp 10 có giải thích.

    Cấu trúc:
    Mã (AutoIt):
    DirCopy("Đường dẫn ban đầu", "Đường dẫn cần copy đến", [flag = 0])
    ; Trong đó:
    ;        + Đường dẫn ban đầu: là đường dẫn của cây thư mục cần copy
    ;        + Đường dẫn cần copy đến: là đường dẫn cần past cây thư mục ấy vào
    ;        + Flag:
    ;                . 0: (Mặc định) Không ghi đè nếu cây thư mục ấy đã tồn tại
    ;                . 1: Ghi đè lên cây thư mục cũ nếu cây thư mục ấy đã tồn tại
    Ví dụ:
    Mã (AutoIt):
    DirCopy(@MyDocumentsDir, @TempDir & "\Backups\MyDocs", 0)
     
    Chỉnh sửa cuối: 10/9/15
  3. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
  4. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    Cmt...
     
    Phan Dong and chân lôi like this.
  5. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    Cmt...
     
    Phan Dong thích bài này.
  6. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    Cmt...
     
    Phan Dong thích bài này.
  7. hoangdangtrungvn

    hoangdangtrungvn Thành viên
    • 13/23

    Tham gia ngày:
    7/9/15
    Bài viết:
    15
    Đã được thích:
    37
    ơ cái cmt của tui đâu. mà tôi nói cho cái phần bitAND, bitOR rồi còn gì.
    o_Oo_Oo_O
     
    Phan Dong thích bài này.
  8. Tungtata

    Tungtata Tà tà mà sống ~ Thành viên BQT Administrator
    • 93/113

    Tham gia ngày:
    25/8/15
    Bài viết:
    289
    Đã được thích:
    924
    Nơi ở:
    Hà Nội
    nãy xóa để bạn ấy đặt comment gach để sau sửa cho mạch lạc bạn à :) Mình có lưu lại post của bạn rồi
     
    Phan Dong thích bài này.
  9. unknown

    unknown Thành viên mới
    • 3/6

    Tham gia ngày:
    7/9/15
    Bài viết:
    9
    Đã được thích:
    18
    1 vote cho phân loại theo chủ đề :v Hàm Abs đứng tuốt trên, hàm Ceiling lại tuốt dưới, chưa kể Sqrt (chữ S, nằm xa hơn nữa), Sin, Cos, ... Những cái chung loại gom lại dễ tìm hơn là theo alphabet :3
     
    Phan Dong and Jkey C Phong like this.
  10. Jkey C Phong

    Jkey C Phong Thành viên hiểu biết
    • 83/90

    Tham gia ngày:
    7/9/15
    Bài viết:
    96
    Đã được thích:
    2,461
    Nơi ở:
    Thành phố Hồ Chí Minh
    Theo mình vẫn nên để A-Z, vì hiện tại chưa full nó khó khăn vậy thôi, sau này full rồi ctrl+f là ra ngay thôi :)

    @hoangdangtrungvn: Sửa lại cmt: Phần Bit ấy bạn có thể nói rõ hơn không? Chỉ ghi như thế mình đọc cũng chẳng hiểu huống hồ chi cho người đang tìm hiểu AutoIt?!
     
    Chỉnh sửa cuối: 10/9/15
    Phan Dong thích bài này.
  11. unknown

    unknown Thành viên mới
    • 3/6

    Tham gia ngày:
    7/9/15
    Bài viết:
    9
    Đã được thích:
    18
    Về cái chuyện Ctrl+F, tất nhiên là dễ rồi, nhưng nếu cần tìm thông tin một hàm mà KHÔNG BIẾT CHÍNH XÁC TÊN của nó thì sao ? Chẳng hạn tìm hàm tách chuỗi, mỗi ngôn ngữ mỗi khác, có cái thì substr, có cái substring, AutoIt thì lại dùng StringMid, nếu nhập "substr" vào để tìm kiếm liệu có ra không ?

    Mấy cái toán tử trên bit đó giống như And, Or, Not thôi, nhưng áp dụng lên từng bit.
    VD:
    BitAND(1, 3) sẽ ra 1 (1d = 1b, 3d = 11b):
    Nếu bit thứ k ở cả 2 tham số đều là 1 thì bit k ở kết quả sẽ là 1, ngược lại là 0
    0000 0001
    0000 0011
    0000 0001

    BitOR(1, 3) ra 3:
    Nếu bit thứ k ở 1 trong số các tham số là 1 thì bit k ở kết quả sẽ là 1, ngược lại là 0
    0000 0001
    0000 0011
    0000 0011

    BitXOR(1, 3) ra 2:
    Cái này đặc biệt tí. Nếu bit thứ k ở 2 tham số khác nhau thì bit thứ k ở kết quả là 1, ngược lại là 0
    0000 0001
    0000 0011
    0000 0010

    BitRotate là kéo trái phải thôi, VD như ABC rotate thành BCA, hoặc CAB chẳng hạn, đọc lại file Help là biết :3
    VD:
    BitRotate(1, -1) với 1 là 1 số 8 bits
    Sẽ ra -128 (1000 0000), để hiểu tại sao, xem Two's complement.

    BitShift tương tự BitRotate nhưng KHÔNG GIỮ LẠI những bit bị đẩy ra.
    VD:
    BitShift(1, 1) sẽ ra 0
    Shift trái thì sẽ có bit 0 được bổ sung vào phía bên phải. Shift phải thì có bit dấu bổ sung vào phía bên trái
     
    Ngannnn, kamsamita1 and Phan Dong like this.
  12. hoangdangtrungvn

    hoangdangtrungvn Thành viên
    • 13/23

    Tham gia ngày:
    7/9/15
    Bài viết:
    15
    Đã được thích:
    37
    Bạn Unknown đã nói rất chính xác rồi. Tuy nhiên nhiều bạn sẽ vẫn thấy hoang mang. Các bạn đọc thêm về cái này để hiểu hơn nhé.
    https://vi.wikipedia.org/wiki/Mệnh_đề_toán_học
     
  13. Neo Eko

    Neo Eko Thành viên mới
    • 3/6

    Tham gia ngày:
    14/11/15
    Bài viết:
    10
    Đã được thích:
    12
    Tưởng là Paste chứ, Past là "nhanh" trong tiếng anh mà. còn paste là dán thì theo mình có copy(sao chép) thì phải có paste(dán) nhỉ :)
     
    Chỉnh sửa cuối: 30/1/16
    kamsamita1 and Phan Dong like this.
  14. Công

    Công Thành viên mới
    • 1/6

    Tham gia ngày:
    21/1/16
    Bài viết:
    2
    Đã được thích:
    4
    F
     
    kamsamita1 and Phan Dong like this.
  15. Công

    Công Thành viên mới
    • 1/6

    Tham gia ngày:
    21/1/16
    Bài viết:
    2
    Đã được thích:
    4
    Hay lắm bạn
     
    kamsamita1 and Phan Dong like this.
  16. bao123345

    bao123345 Thành viên mới
    • 3/6

    Tham gia ngày:
    1/2/16
    Bài viết:
    1
    Đã được thích:
    3
    past là quá khứ nha bạn, nhanh là fast
     
    kamsamita1, Phan Dong and Neo Eko like this.
  17. Neo Eko

    Neo Eko Thành viên mới
    • 3/6

    Tham gia ngày:
    14/11/15
    Bài viết:
    10
    Đã được thích:
    12
    ừ ha , quên quên :v cảm ơn b
     
    kamsamita1 and Phan Dong like this.
  18. Nguyen.Apple

    Nguyen.Apple Thành viên mới
    • 1/6

    Tham gia ngày:
    20/3/16
    Bài viết:
    1
    Đã được thích:
    1
    Ủa, Cái này không update nữa hả các anh :'(
     
    kamsamita1 thích bài này.
  19. hungphungson

    hungphungson Thành viên mới
    • 1/6

    Tham gia ngày:
    16/4/16
    Bài viết:
    1
    Đã được thích:
    1
    Bác thớt đâu rồi :(:(:(
     
    kamsamita1 thích bài này.
  20. khalythanh

    khalythanh Thành viên mới
    • 1/6

    Tham gia ngày:
    22/12/16
    Bài viết:
    1
    Đã được thích:
    1
    nhiều thật cảm ơn thớt nhé
     
    kamsamita1 thích bài này.

Chia sẻ trang này

Đang tải...