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

AutoHotKey Bài 1: Sử dụng MsgBox

Thảo luận trong 'AutoHotkey' bắt đầu bởi kakanet, 9/5/17.

  1. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Bất cứ ngôn ngữ nào thì điều đầu tiên cần học là hiển thị text lên MsgBox.
    AutoHotKey có 2 kiểu hiển thị Msgbox với cấu trúc là:

    1/ MsgBox, Text hoặc MsgBox Text để hiển thị 1 Text với Button OK.
    Hãy copy tất cả 6 dòng code ví dụ sau vào AHK-SciTE hoặc trình soạn thảo mà bạn đang sử dụng và chạy thử:
    Mã (Text):

    MsgBox Hello World1_a
    MsgBox "Hello World2_a"
    MsgBox % "Hello World3_a"

    MsgBox, Hello World1_b
    MsgBox, "Hello World2_b"
    MsgBox, % "Hello World3_b"
     
    Bạn có thấy gì lạ không ? Hello World3_aHello World3_b không có dấu " " so với Hello World2_aHello World2_b. Điều này liên quan đến Biến trong AutoHotKey và mình sẽ nói ở phần sau.

    2/ MsgBox [, Options, Title, Text, Timeout] : Thêm nhiều tuỳ biến cho MsgBox.
    Hàm này cũng gần như tương tự như bên AutoIt, bên AutoIt là MsgBox (flag, "title", "text" [, timeout = 0 [, hwnd]])

    Parameter Options nạp giá trị y chang Flag bên AutoIt, ví dụ muốn hiện Yes/No thì điền Options = 4, muốn hiện Icon Question thì Options = 32, cũng có thể kết hợp nhiều Options với nhau như bên AutoIt, chẳng hạn Options = 32 + 4...

    Hãy copy tất cả 3 dòng code ví dụ sau vào AHK-SciTE hoặc trình soạn thảo mà bạn đang sử dụng và chạy thử:
    Mã (Text):
    MsgBox, 4, MsgBox 1, Would you like to continue?
    MsgBox, 4 + 32, MsgBox 2, Would you like to continue?
    MsgBox, % 4 + 32, MsgBox 3, Would you like to continue?
    Bạn có thấy dòng MsgBox 2 có gì lạ không ?
    Nếu không thì chạy lại thử code trên nhé, bạn sẽ thấy "4 + 32, MsgBox 2, Would you like to continue?" nó xem như 1 chuỗi luôn.
    => Nếu là AutoIt thì 4 + 32 nó tự động hiểu là 40 thì AutoHotKey không thể dùng như vậy được, phải thêm dấu % phía trước (như code MsgBox 3) nó mới hiểu đó là phép tính, điều này sẽ nói rõ hơn ở phần Biến ở bài sau
    => Nếu Parameter Options không phải là 1 con số thì AutoHotKey coi như nguyên 1 đoạn sau MsgBox đều là Chuỗi => Nó trở thành code kiểu 1: MsgBox, Text hoặc MsgBox Text

    Tiếp tục ở kiểu 2 này, nó khác AutoIt ở chỗ nữa là:
    Ví dụ AutoIt:
    Mã (AutoIt):
    If MsgBox(4, 'Ví dụ Msgbox với Yes No Button', 'Ấn Yes sẽ trả về 6, Ấn No sẽ trả về 7') = 6 Then
    MsgBox(0, 'Kết quả',  'Bạn đã ấn Yes')
    EndIf
    Còn AutoHotKey MsgBox nó không trả về 1 con số như bên AutoIt mà phải dùng hàm IfMsgBox với cấu trúc: IfMsgBox, ButtonName
    Parameter ButtonName là tên của nút đã nhấn. Ví dụ:
    Mã (Text):
    MsgBox, 4, Ví dụ, MsgBox với YesNo Button
    IfMsgBox, Yes
    MsgBox, Bạn đã nhấn Yes
    IfMsgBox, No
    MsgBox, Bạn đã nhấn No
    Xem thêm hàm MsgBox tại: https://autohotkey.com/docs/commands/MsgBox.htm
    Xem thêm hàm IfMsgBox tại: https://autohotkey.com/docs/commands/IfMsgBox.htm#Parameters


    Xem tiếp bài 2 tại đây: http://autoitvn.com/threads/bai-2-sieu-quan-trong-bien-va-bieu-thuc.845/
     
  2. QuangToan

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

    Tham gia ngày:
    21/2/17
    Bài viết:
    26
    Đã được thích:
    19
    hóng tool bằng autohotkey, :3
     
  3. DuyMinh

    DuyMinh Thành viên năng động
    • 28/34

    Tham gia ngày:
    14/3/17
    Bài viết:
    177
    Đã được thích:
    92
    Qua 1 thời gian mình tìm hiểu thì thằng AutoHotkey này có vẻ rất là nhập nhằng giữa kiểu truyền thống và biểu thức... Ví dụ như MsgBox, nếu dùng kiểu biểu thức -> không thể thêm option -> buộc phải dùng kiểu truyền thống (Không biết có đúng không? Hay mình mò không ra?) và còn vô vàn ví dụ khác nữa... :((
     
  4. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Cậu tham khảo bài viết này nha:

    Variables are like little post-it notes that hold some information. They can be used to store text, numbers, data from functions and commands or even mathematical equations. Without them, programming & scripting would be much more tedious.

    Variables can be assigned a few ways, We'll cover the most common forms. Please pay attention to the equal sign (=).
    1. variable=text
      This is the simplest form for a variable, traditional assignment. Simply type in your text and done.
    2. variable=%variable2%
      Same as above, but you are assigning a variable to a different variables value.
    3. variable:="text"
      This is an expression assignment, due to the : before the =. Any text needs to be in "quotes".
    4. variable:=variable2
      In expression mode, variables do not need %'s.
    5. variable:=6+8/3*2-sqrt(9)
      Thanks to expressions, you can do math!
    Number 1 & 2 can be combined. var=%var2% some text %var3%.
    3, 4 & 5 can be combined too. var:="The value of 5+ " Variable " is: " 5+Variable
    Any equal sign (=) with a symbol in front of it is called an Assignment Operator, which are always an expression. So := += -= .= etc. always use expressions.

    a. When to use percents
    One of the most common issues with AutoHotkey involving variables is when to use the percent signs (%). Hopefully this will clear some confusion.

    When to use %'s:
    1. When you are using Commands you use percent signs.
      -- Except when the parameter is OutputVar or InputVar.
    2. When you are assigning a variable to a value using a traditional mode (an equal sign with no symbol in front of it).
    b. When not to use %'s:
    1. In parameters that are input or output variables, For example: StringLen, OutputVar, InputVar
    2. On the left side of an assignment: Var = 123abc
    3. On the left side of traditional (non-expression) if-statements: If Var1 < %Var2%
    4. Everywhere in expressions. For example:
      If (Var1 != Var2)
      Var1 := Var2 + 100
    Trong bài Biến mình cũng có nhắc đến, chỉ sử dụng kiểu biểu thức thôi cho nó tường minh. Còn kiểu truyền thống thì sử dụng khi gán cái gì đó đơn giản như gán một chuỗi đơn giản vào biến, gán chỉ 1 tham số vào hàm ^^
     
    DuyMinh thích bài này.

Chia sẻ trang này

Đang tải...