; AVI GuiCtrlCreateAvi("sampleAVI.avi",0, 180, 10, 32, 32, $ACS_AUTOPLAY) GuiCtrlCreateLabel("Sample avi", 170, 50) ; GUI MESSAGE LOOP GuiSetState() Một cách khác, thuận tiện hơn, đó là sử dụng một soft dạng GUI Builder. Có nhiều GUI Builder dành cho AutoIt, nhưng theo quan điểm cá nhân, có lẽ Koda là khá nhất. Công cụ này có thể tại về từ trang web: http://www.autoitscript.com/fileman/ ormdesign.html Phiên bản mới nhất là 1.6, cập nhật ngày 19/9. Koda cho phép bạn dễ dàng tạo GUI chỉ bằng cách drag-and-drop vào form, sau đó sẽ tự động sinh code AutoIt để bạn đưa vào script của mình. Rất rất tiện lợi nếu so sánh với việc code từ đầu bằng tay. 6.2. Gắn GUI với code Có GUI rồi, là đến lúc bạn muốn gắn nó với các mã AutoIt thực thi các lệnh đã viết từ trước. AutoIt hỗ trợ 2 chế độ tương tác với GUI: OnEvent và MessageLoop. Có thể đảo qua lại 2 chế độ bằng cách dùng lệnh: Code: Opt("GUIOnEventMode", 1) Ở chế độ OnEvent, ta sẽ gắn từng "sự kiện" với một hàm tương ứng. Ví dụ, ta gắn "sự kiện" người dùng click nút Close với hàm Close(): Code: GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE") Func CLOSE() MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting ") Exit EndFunc Ở chế độ MessageLoop, ta có một cách tiếp cận hoàn toàn khác. AutoIt sẽ tạo một vòng lặp vô hạn, liên tục kiểm tra xem có sự kiện nào xảy ra với GUI ko - thông qua một hàm mang tên GUIGetMsg. Toàn bộ việc gắn code với GUI được thực hiện qua một vòng lặp While: Code: While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting ") ExitLoop EndSelect WEnd Identical(UDS) 7. Chạy thử, biên dịch, đóng gói và phân phối Có script hoàn chỉnh. Có GUI hoàn hảo. Đó là lúc bạn nghĩ đến việc tiếp theo. Phân phối tới càng nhiều người càng tốt (nhưng đừng dùng cách phát tán qua YM nhé ) Để chạy script viết bằng AutoIt, bạn hãy mở file AutoIt3.exe và chọn đến file .au3 tương ứng. Để biên dịch thành file exe và đem đi phân phối, bạn cần đến công cụ Aut2Exe. Bạn cần chỉ định file mã nguồn, tên exe sẽ tạo, icon (nếu thích) và bấm Convert. Nếu bạn muốn mình có thể dịch ngược từ exe về au3 trong trường hợp đánh mất file .au3 gốc , hãy chọn Allow decompilation và gõ vào password của mình. Pass này sẽ dùng để tránh người khác dịch ngược file script của bạn. Nếu để ý kỹ, bạn sẽ thấy khi kích phải chuột vào file exe đã tạo + chọn properties, sẽ có thông tin File Version là phiên bản của AutoIt. Bạn rất có thể sẽ muốn loại bỏ thông tin này + đưa thông tin của riêng mình vào cho personal Điều đó hoàn toàn có thể thực hiện được khi bạn dùng Resource Editor. Tuy nhiên, nếu cố edit file exe đã biên dịch, bạn sẽ thấy mình phí công vô ích, bởi file exe mới sẽ ko hoạt động Hãy edit file AutoItSC.bin cùng thư mục với Aut2Exe.exe với những thông tin mà bạn thích, sau đó mới tiến hành biên dịch. Lần này, kết quả sẽ như mong đợi Bạn sẽ có một file .exe của riêng mình, với icon tùy ý, info ở mục properties tùy ý. Khó có thể nhận ra đó là script viết bằng AutoIt Identical(UDS) 8. Phụ lục 1: AutoIt or not AutoIt? Có thể nói ko ngoa, AutoIt là một con dao 2 lưỡi. Nó được tạo ra để giúp người dùng làm các script tự động hóa, giúp mình dễ thở hơn . Tuy vậy, AutoIt cũng có thể được dùng để tạo một con trojan, một con virus, whatever Phát tán con "virus" này là quá đơn giản. Hãy nhìn những j` các "virus" YM đã làm. Như đã nói ở trên, một file exe có thể được edit để khi mới nhìn vào, bạn khó có thể biết nó có phải là một script AutoIt hay ko. Nhưng, điều đó thực ra cũng ko hoàn toàn đúng. Một script viết bằng AutoIt, cho dù có được biên dịch với toàn bộ info trong file .bin bị luộc mất, vẫn có thể bị lộ danh tính, bằng chính một script AutoIt. Đây là hàm nhận diện script viết bằng AutoIt, được tớ sưu tầm từ forum của nó: Code: Func _IsAutoItExe($hFile) Local $hNew = StringTrimRight($hFile, 4) & 'verify.exe' FileCopy($hFile, $hNew) RunWait('"' & @ProgramFilesDir & '\AutoIt3\Aut2Exe\UPX.exe" -d "' & $hNew & '"', '', @SW_HIDE) Local $sString = String(BinaryString(FileRead($hNew))) FileDelete($hNew) Local $sFind = '3C6465736372697074696F6E3E4175746F497420333C2F6465736372697074696 F6E3E' If StringInStr($sString, $sFind) Then Return 1 Return SetError(1, 0, 0) EndFunc __________________ Identical(UDS) 9. Phụ lục 2: Công cụ xem thông tin về các cửa sổ - Au3Info.exe Tự động hóa các công việc - đó cũng là lý do AutoIt có khả năng tương tác với các chương trình khác. Nhận diện một cửa sổ, xác định tọa độ chuột để giả lập việc click, đó là những ứng dụng của Au3Info.exe. Bạn chỉ việc chạy file này, trỏ đến cửa sổ cần xem thông tin. Mọi điều cần biết - title, class, mouse position, pixel color, control info sẽ hiện lên. Bạn có thể bấm Ctrl + Alt + F để giữ nguyên trạng thái của cửa sổ thông tin, và copy những thông tin đó vào script mình đang viết để dùng. 10. Kết Trên đây là tut dài nhất, mất công nhất mà tớ từng viết. Hết vụ này xin phép nghỉ viết tut dài hạn Hãy coi đây là cái nhìn tổng quan về AutoIt, về ngôn ngữ AutoIt, các công cụ đi kèm, những thứ cần thiết, những điều mà bạn có thể quan tâm Xin hết Identical(UDS) Bài 0: Quá trình phát triển công nghệ Web - Nguyên nhân xuất hiện công nghệ AJAX. Trước khi tìm hiểu về Ajax, chúng ta cùng xem xét quá trình phát triển các công nghệ Web, nguyên nhân và hoàn cảnh xuất hiện công nghệ Ajax. Quá trình phát triển các công nghệ trong ứng dụng Web Ban đầu, các trang Web là tĩnh; người dùng gửi yêu cầu một tài nguyên nào đó, và server sẽ trả về tài nguyên đó. Các trang Web không có gì hơn là một văn bản được định dạng và phân tán. Đối với các trình duyệt, thì các trang Web tĩnh không phải là các vấn đề khó khăn, và trang Web lúc đầu chỉ để thông tin về các sự kiện, địa chỉ, hay lịch làm việc qua Internet mà thôi, chưa có sự tương tác qua các trang Web. Năm 1990, Tim Berners-Lee, tại CERN, đã sáng chế ra HTML (Hyper Text Markup Language), ngôn ngữ đánh dấu siêu văn bản. HTML rất đơn giản và dễ dùng, và nó trở thành một ngôn ngữ rất phổ biến và cơ bản. Tuy nhiên, không lâu sau đó, nhu cầu về các trang Web động, có sự tương tác ngày một tăng, chính vì thế sự ra đời các công nghệ Web động là một điều tất yếu. Sau đây là một số công nghệ Web động cơ bản: 1. CGI Giải pháp đầu tiên để làm các trang Web động là Common Gateway Interface (CGI). CGI cho phép tạo các chương trình chạy khi người dùng gửi các yêu cầu. Giả sử khi cần hiển thị các các mục để bán trên Web site – với một CGI script ta có thể truy nhập cơ sở dữ liệu sản phẩm và hiển thị kết quả. Sử dụng các form HTML đơn giản và các CGI script, có thể tạo các “cửa hàng” ảo cho phép bán sản phẩm cho khách hàng qua một trình duyệt. CGI script có thể được viết bằng một số ngôn ngữ từ Perl cho đến Visual Basic. Tuy nhiên, CGI không phải là cách an toàn cho các trang Web động. Với CGI, người khác có thể chạy chương trình trên hệ thống. Vì thế có thể chạy các chương trình không mong muốn gây tổn hại hệ thống. Nhưng dù vậy, cho đến hôm nay thì CGI vẫn còn được sử dụng. 2. Applet Tháng 5/1995, John Gage của hãng Sun và Andressen (nay thuộc Netscape Communications Corporation) đã công bố một ngôn ngữ lập trình mới có tên Java. Netscape Navigator đã hỗ trợ ngôn ngữ mới này, và một con đường mới cho các trang Web động được mở ra, kỷ nguyên của applet bắt đầu. Applet cho phép các nhà phát triển viết các ứng dụng nhỏ nhúng vào trang Web. Khi người dùng sử dụng một trình duyệt hỗ trợ Java, họ có thể chạy các applet trong trình duyệt trên nền máy ảo Java Virtual Machine (JVM). Dù rằng applet làm được nhiều điều song nó cũng có một số nhược điểm: thường bị chặn bởi việc đọc