GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 31

Chia sẻ: Asdasdsdqeqwdd Asdasdsadasd | Ngày: | Loại File: PDF | Số trang:6

0
78
lượt xem
46
download

GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 31

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'giới thiệu về autoit-lập trình trên autoit part 31', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: GIỚI THIỆU VỀ AUTOIT-Lập Trình Trên AutoIT part 31

  1. trong hàm được gọi ta có thể sử dụng các macro khác nhau do AutoIt cung cấp để hỗ trợ việc xử lý các sự kiện Macro Chi tiết ID của control đang gửi thông điệp hoặc ID của sự kiện @GUI_CTRLID hệ thống @GUI_WINHANDLE Handle của GUI đã gửi đi thông điệp Handle của control đã gửi đi thông điệp (nếu có thể dùng @GUI_CTRLHANDLE được) Chú ý : Bạn có thể sử dụng một hàm cho nhiều sự kiện , điều bạn cần làm trong trường hợp này là tạo ra các hành động khác nhau dựa trên macro @GUI_CTRLID . Ví dụ , bạn có thể đăng ký tất cả sự kiện hệ thống vào trong một hàm rồi tùy trường hợp mà viết lệnh. Control Event Khi bạn nhấp hoặc thay đổi một control thì một sự kiện được gửi đi . Sự kiện đó được gửi vào trong một hàm đã định nghĩa và đã được thiết lập trong GUICtrlSetOnEvent. Bên trong hàm này thì macro @GUI_CTRLID mang giá trị là controlID được trả về khi tạo bằng hàm GUICtrlCreate.... System Event Các sự kiện hệ thống – ví dụ như close một gui – thì cũng được gởi đi theo cách tương tự như Control Event . Tuy nhiên sự kiện lại được gửi vào hàm được thiết lập trong GUISetOnEvent. Sự kiện hệ thống có thể mang những giá trị sau : $GUI_EVENT_CLOSE $GUI_EVENT_MINIMIZE $GUI_EVENT_RESTORE $GUI_EVENT_MAXIMIZE
  2. $GUI_EVENT_PRIMARYDOWN $GUI_EVENT_PRIMARYUP $GUI_EVENT_SECONDARYDOWN $GUI_EVENT_SECONDARYUP $GUI_EVENT_MOUSEMOVE $GUI_EVENT_RESIZED $GUI_EVENT_DROPPED Ví dụ Chúng ta sẽ bắt đầu với chương trình hello world đơn giản sau : #include GUICreate("Hello World", 200, 100) GUICtrlCreateLabel("Hello world! How are you?", 30, 10) GUICtrlCreateButton("OK", 70, 50, 60) GUISetState(@SW_SHOW) Sleep(2000) Sử dụng chế độ OnEvent , chúng ta sẽ viết lại để hoàn tất đoạn mã trên : #include Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainwindow = GUICreate("Hello World", 200, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) GUICtrlSetOnEvent($okbutton, "OKButton") GUISetState(@SW_SHOW) While 1 Sleep(1000) ; Idle around WEnd Func OKButton() ;Note: at this point @GUI_CTRLID would equal $okbutton, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You pressed OK!")
  3. EndFunc Func CLOSEClicked() ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...") Exit EndFunc Như bạn thấy , nó rất đơn giản. Mặc dù chỉ là ví dụ cơ bản nhưng sẽ là cái nền để bạn tạo ra những cái hay hơn đấy. Thao tác nâng cao và chế độ nhiều cứa sổ Chúng ta cũng đã biết rằng các control ID là duy nhất , cho dù bạn có nhiều cửa sổ và nhiều control thì bạn vẫn có thể xử lý chúng theo định danh mà bạn đã chọn. Tuy nhiên vấn đề là xử lý như thế nào ? Ở đây sẽ trình bày một ví dụ tương tự như ví dụ trên , nhưng có thêm một cửa sổ dummy nữa : #include Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainwindow = GUICreate("Hello World", 200, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) GUICtrlSetOnEvent($okbutton, "OKButton") $dummywindow = GUICreate("Dummy window for testing ", 200, 100, 500, 200) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUISetState(@SW_SHOW, $dummywindow) GUISwitch($mainwindow) GUISetState(@SW_SHOW) While 1 Sleep(1000) ; Idle around WEnd
  4. Func OKButton() ;Note: at this point @GUI_CTRLID would equal $okbutton MsgBox(0, "GUI Event", "You pressed OK!") EndFunc Func CLOSEClicked() ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, ;@GUI_WINHANDLE will be either $mainwindow or $dummywindow If @GUI_WINHANDLE = $mainwindow Then MsgBox(0, "GUI Event", "You clicked CLOSE in the main window! Exiting...") Exit EndIf EndFunc Đầu tiên , có một sự thay đổi quan trọng là việc xuất hiện của hàm GUISwitch – khi một cửa-sổ-mới (new window) được tạo ra thì nó trở thành cửa sổ mặc định cho các thao tác của GUI trong tương lai (bao gồm việc tạo control). Trong ví dụ này , chúng ta muốn làm việc với của sổ chính "Hello world" , không phải cửa sổ dummy , nên phải switch về cửa sổ chính. Một vài hàm về GUI cho phép bạn sử dụng handle cửa sổ trong tham số để tự động chuyển sang GUI cần chứa control mà không cần phải dùng đến lệnh GUISwitch. Và chúng ta đã có một trường hợp trong đoạn code trên : GUISetState(@SW_SHOW, $dummywindow) Cũng xin nhắc là chúng ta sử dụng hàm OnEvent để điều khiển nút "close" cho cả hai cửa sổ và sau đó sử dụng macro @GUI_WINHANDLE để xét xem cửa sổ nào vừa gởi đi sự kiện. Chúng ta chỉ đóng GUI khi nút close được nhấn và thông điệp đó xuất phát từ cửa sổ chính (không phải dummy) . Nhưng bạn cũng có thể sử gán cho mỗi cửa sổ một hàm khác nhau để xử lý nếu bạn bạn thích. _Main() Func _Main() HotKeySet("{ESC}", "_Quit") ; press ESC to exit While 1
  5. $pos = MouseGetPos() ToolTip("Mouse : " & $pos[0] & ", " &$pos[1] ) Sleep(10) WEnd EndFunc ;==>_Main Func _Quit() Exit EndFunc ;==>_Quit #include #include #include #include Global $string , $def_str, $temp_str , $i , $len , $run , $nDelay , $misc , $timer2type ; run = 1 : playing run=2 : paused run=0 : stoped ; i : dem so ky tu can lay $str1 = "when i saw you at the party , when you asked me girlfriend , i didn't know why i can't say clearly . You 're as pretty as angel , your eyes seemed to burn my heart. My strange lover..." & @CRLF $str2 = "When i smelt a perfume from your hair , when i kissed your body , the waves of love were flowing in my and your soul . You said , don't leave me baby ..." & @CRLF $str3 = "When i heard words you told , when i believed your heart , and now i knew i was a fool . I didn't cry but my soul was dying , my heart broke when you said ''Good bye''" & @CRLF $str4 = "When i looked the waves of ocean , when i missed my memories , i felt all thing were only a deam . A full house which would never exist in this world. The sun was setting..." & @CRLF $str5 = "When i told my children stories , when i took my wife's hands , i knew the happy life was right here . '' Every thing is never perfect , i have to accept . '' " & @CRLF $str6 = "When i see the winter of my life , when i write these lines , all left ever and ever, all will never return . Outside the window , sights are a white by snow , the wind 's still blowing , it's still cold, very cold. " $str7 = "Maybe this's final winter i can look , think and count leaves ..." $def_str = $str1 & $str2 & $str3 & $str4 & $str5 & $str6 & $str7 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ $string = $def_str $len = StringLen($string)
Đồng bộ tài khoản