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ỏi đáp [Solved] Code sai ở đoạn nào mà nút EXIT không thực hiện lệnh thoát ?

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi hoanghuy, 26/12/18.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. hoanghuy

    hoanghuy Thành viên
    • 8/11

    Tham gia ngày:
    1/12/18
    Bài viết:
    50
    Đã được thích:
    4
    Mã (AutoIt):
    #include <AutoItConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    $CPU=@CPUArch
    if $CPU="X64" Then
       $CPU="64-bit"
    ElseIf $CPU="X86" Then
           $CPU="32-bit"
    EndIf

    $Gui=GUICreate('Information of computer',300,300,500,200)
    $guibut1=GUICtrlCreateButton('EXIT',100,200,100,20)
    GUICtrlCreateLabel("Thông tin máy"&@CRLF&"Hệ điều hành của bạn: "&@OSVersion&@CRLF&"Bộ Xử Lý: "&$CPU&@CRLF&"Tốc độ quạt: "&@DesktopRefresh&" RPM"&@CRLF&"Chiều cao màn hình: "&@DesktopHeight&" pixel"&@CRLF&"Chiều rộng màn hình: "&@DesktopWidth&" pixel",30,30,250,300)
    GUICtrlSetFont(-1, 12, 550, 0, "Microsoft Sans Serif")

    GUISetState (@SW_SHOW)

    while 1
    if GuiGetMsg() = $GUI_EVENT_CLOSE then
       exit

    ElseIf GuiGetMsg()= $guibut1 Then
       MsgBox  (0,'','Cảm ơn đã sử dụng chương trình')

    endif
    wend
     
  2. emga9xkc

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

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    Tiên học lễ. hậu học văn
     
    Tungtata thích bài này.
  3. Only Love

    Only Love Thành viên
    • 18/23

    Tham gia ngày:
    8/9/15
    Bài viết:
    69
    Đã được thích:
    59
    @hoanghuy case GuiGetMsg() = $guibut1 bro đã có lệnh thoát đâu mà đòi nó thoát -_-
     
  4. hoanghuy

    hoanghuy Thành viên
    • 8/11

    Tham gia ngày:
    1/12/18
    Bài viết:
    50
    Đã được thích:
    4
    nhầm, nhưng mà mik để exit sau đoạn
    ElseIf GuiGetMsg()= $guibut1 Then
    MsgBox (0,'','Cảm ơn đã sử dụng chương trình')
    Exit
    rồi nhưng nó hiện nút ra mà ko ấn vào để thoát đc
     
  5. Only Love

    Only Love Thành viên
    • 18/23

    Tham gia ngày:
    8/9/15
    Bài viết:
    69
    Đã được thích:
    59
    Do bro để chiều cao của Label lớn quá che mất cái button
     
    hoanghuy thích bài này.
  6. yutijang

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

    Tham gia ngày:
    1/7/18
    Bài viết:
    110
    Đã được thích:
    61
    @hoanghuy Xin chào,
    - Vì bạn hỏi một code GUI "lạ hoắc" mình chưa từng thấy bao giờ (cứ cho là nó không đúng quy chuẩn).
    - Vì mình có gợi ý cho bạn là hãy đọc những hướng dẫn cơ bản trước rồi hãy code và đặt câu hỏi.
    - Và vì thông tin thành viên của bạn hiển thị bạn 15 tuổi + code lạ nên mình cho rằng bạn muốn "thử" kiến thức của thành viên trong diễn đàn.
    Nên mình sẽ trả lời như sau: (Mình không dùng hiểu biết của mình để giải thích mà trích một phần nội dung google dịch từ file help cho bạn xem)

    GUIGetMsg ( [advanced = 0] ) (Thăm dò GUI để xem có sự kiện nào xảy ra không.)
    Giá trị trả lại
    Trả về một sự kiện hoặc một mảng tùy thuộc vào tham số "nâng cao".
    ...

    Vậy thì code trong vòng lặp while của bạn sẽ sửa lại như sau:
    Mã (AutoIt):
    While 1
        $msg = GuiGetMsg(1)
        If $msg[0] = $GUI_EVENT_CLOSE Then
            Exit
        ElseIf $msg[0] = $guibut1 Then
            MsgBox  (0,'','Cảm ơn đã sử dụng chương trình')
            Exit
        EndIf
    WEnd

    Thông tin tiếp theo từ file help để giải thích cho code ở trên:

    When using the "advanced" parameter the information is returned in an array with extended information:
    (Khi sử dụng tham số "nâng cao", thông tin được trả về trong một mảng có thông tin mở rộng:)

    $aArray[0] = 0 or Event ID or Control ID
    $aArray[1] = The window handle the event is from
    $aArray[2] = The control handle the event is from (if applicable)
    $aArray[3] = The current X position of the mouse cursor (relative to the GUI window)
    $aArray[4] = The current Y position of the mouse cursor (relative to the GUI window)


    Khi sử dụng GuiGetMsg() nó chỉ trả về sự kiện với GUI (Event ID), giá trị được định nghĩa trong GUIConstantsEx.au3.
    Muốn trả về Control ID (mà $guibut1 là 1 Control ID thì hãy dùng GuiGetMsg(1) để trả về dạng mảng, với $aArray[0] để so sánh.

    Và nếu như bạn cứ tiếp tục không giúp bản thân bằng cách đọc hướng dẫn cơ bản về AutoIt và kiểm tra thông tin các hàm có trong file help trước khi viết câu hỏi thì mọi người sẽ không cố giúp bạn nữa đâu.
     
    hoanghuy and quochoa like this.
  7. hoanghuy

    hoanghuy Thành viên
    • 8/11

    Tham gia ngày:
    1/12/18
    Bài viết:
    50
    Đã được thích:
    4
    cam on ban nha, tui da sua bang cach khac nhung cach cua ban tui hoc them cung dc ^^
     
  8. hoanghuy

    hoanghuy Thành viên
    • 8/11

    Tham gia ngày:
    1/12/18
    Bài viết:
    50
    Đã được thích:
    4
    tui 15 tuoi thiet ma, chi moi hoc autoit thoi, tui thich lap trinh lam ^^
     
  9. hoanghuy

    hoanghuy Thành viên
    • 8/11

    Tham gia ngày:
    1/12/18
    Bài viết:
    50
    Đã được thích:
    4
    code tui viết theo cách tui hiểu thôi ak, nên hơi rối, mong đc giúp đỡ, với lại tui mới vô gruop dc vài ngày ak
    :autoit:
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...