Phần 4: Hướng dẫn sử dụng VBScriptRunner
Ở bài viết trước tôi đã nói về cách sử dụng VbscriptRunner để tạo index ngành trong Amibroker. Ở bài viết này tôi sẽ đề cập sâu hơn về các đặc điểm mà VbscriptRunner có thể hỗ trợ cho người dùng.
Chắc bạn cũng đã biết rằng vbscript hoặc jscript được viết dưới dạng text và được chạy trực tiếp mà ko pải thông qua gia đoạn trung gian để biên dịch ra thành mã lệnh như các ngôn ngữ lập trình khác. Như vậy người viết script bằng vb hoặc java có thể soạn thảo code với bất kỳ chương trình soạn thảo văn bản nào như notepad hoặc word. Sau khi viết xong thì cứ đặt tên cho phần mở rộng của file là vbs cho vbscript hoặc js cho jscript. Sau đó thì cứ chạy trực tiếp bằng double click hoặc chạy từ cửa sổ Dos. Thông thường người viết script sẽ gặp khó khăn ở việc theo dõi quá trình chạy và debug (gỡ rối) chương trình vì bản thân vbscript hoặc jscript ko hỗ trợ nhiều về tương tác với người dùng ngoài một ít lệnh hỗ trợ tương tác như msgbox. Với những người có ít nhiều kinh nghiệm, họ sẽ dùng các chương trình soạn thảo chuyên dụng như visual studio. Tuy nhiên, các chương trình này thường ko miễn phí và cồng kềnh. Ở vbscriptRunner, tôi ko có tham vọng thay thế những chương trình chuyên dụng đó vì biết khả năng giới hạn của mình. Với đánh giá của bản thân, vbscriptRunner hỗ trợ cho bạn tốt hơn trong việc soạn thảo code, debug, và theo dõi quá trình chạy trong trường hợp bạn ko có các công cụ chuyên dụng như tôi đã đề cập ở trên. Ngoài ra, có 1 điểm đáng quan tâm ở vbsriptRunner là khả năng chạy script dưới dạng đã được mã hóa (vì một lý do nào đó như tôi đã đề cập ở bài viết trước). Điều này giúp người dùng VBScriptRunner an tâm hơn trong việc chia sẽ thành quả làm việc của mình.
Ở chương trình của vbscriptRunner, bạn sẽ thấy có 3 phần chính:
- display board: là phần trên cùng có chức năng hiển thị quá trình thực hiện lệnh. Người dùng có thể can thiệp vào thành phần này để hiển thị những thông tin mà anh ta muốn.
- phần nút lệnh: gồm 2 nút lệnh, "load script" và "run script". Nút lệnh "load script" dùng để load một file script (đã được mã hóa hoặc chưa được mã hóa) vào cửa sổ soạn thảo.
- phần cửa sổ soạn thảo: là phần dùng để soạn thảo script code hoặc dùng để hiển thị script được load từ file. Khi người dùng click nút lệnh "run script" những codes (đã được mã hóa hoặc chưa được mã hóa) trong cửa sổ này sẽ được thực hiện.
Như vậy bạn đã hiểu cách thức mà vbscriptRunner làm việc. Tiếp theo tôi sẽ hướng dẫn cho bạn cách sử dụnh display broad để hiện thị thông tin mà bạn muốn. Thông thường những người viết script sẽ dùng lệnh msgbox để hiển thị thông tin. Tuy nhiên, trong trường hợp hiển thị thông tin ở trong một vòng lặp thì cách này rất bất tiện vì người dùng phải click ok nhiều lần. Những trường hợp như vậy bạn có thể dùng display board để thay thế. Ví dụ sau sẽ minh hoạ điều đó:
For i=0 to 5
Displayboard.text=i
Next
Như vậy nếu bạn chạy đoạn code trên trong vbscriptRunner bạn sẽ thấy display board lần lượt hiển thị giá trị từ 0 đến 5. Tuy nhiên nếu bạn lưu đoạn code trên vào file có đuôi là .vbs và chạy trực tiếp bằng cách double click bạn sẽ thấy xuất hiện thông báo lỗi. Lỗi này là do hệ điều hành ko hiểu được đối tượng Displayboard vốn chỉ có thể được tương tác thông qua vbscriptRunner. Nếu bạn muốn script của bạn có thể vừa chạy được trực tiếp cũng như thông qua vbscriptRunner thì bạn phải thay đổi đoạn code trên khác đi một chút như sau:
For i=0 to 5
If isobject(displayBoard) then
displayBoard.text=i
Else
Msgbox i
End if
Next
Bây giờ nếu bạn save và sau đó double click để chạy trực tiếp thì bạn sẽ thấy ko bị báo lỗi nữa. Thay vào đó bạn phải click ok 6 lần. Nhưng nếu bạn chạy lại chính script đó bằng vbscriptRunner thì bạn chỉ thấy displayboard hiển thị giá trị lần lượt từ 0 đến 5 mà ko cần bạn phải click chuột một lần nào cả. Đến đây chắc là bạn đã hiểu được tác dụng của displayboard rồi phải ko?
Ngoài việc hỗ trợ người dùng theo dõi quá trình chạy như tôi vừa trình bày ở trên, VbscriptRunner cũng hỗ trợ bạn trợ bạn gỡ rối (debug) khi chương trình gặp lỗi. Mỗi khi chương trình bạn viết phát sinh lỗi, vbscriptRunner sẽ cung cấp cho bạn các thông tin sau:
- error number: mã lỗi
- error descrisption: diễn giải lỗi
- line of error: dòng lệnh phát sinh lỗi.
Với các thông tin đó, mỗi khi nhận được lỗi, bạn sẽ dễ dàng xác được dòng lệnh gây ra lỗi thông qua các số thứ tự dòng lệnh mà vbscriptRunner cung cấp cho bạn ở bên lề trái của cửa sổ soạn thảo và từ đó giúp bạn tìm ra nguyên nhân phát sinh lỗi dễ dàng hơn. Bạn cũng có thể kết hợp chức năng này với việc sử dụng DisplayBoard để hiện thị giá trị của biến cần gỡ rối hoặc kết hợp với lệnh msgbox để ngừng tạm thời chương trình tại dòng lệnh cần gỡ rối. Như vậy là bạn đã có được một bộ công cụ để phát triển các ứng dụng viết bằng Script rồi đó.
Một đặt điểm đáng quan tâm ở vbscriptRunner là khả năng chạy được các script đã mã hóa. Trong quá trình làm việc, có thể một lúc nào đó bạn cần phải mã hóa code bạn viết như tôi đã đề cập ở bài viết trước. Trong phần tiếp theo tôi sẽ hướng dẫn bạn cách mã hóa code cũng như cung cấp cho bạn công cụ để bạn mã hoá code của mình.
Việc mã hóa code rất đơn giản và nhanh chóng. Sau khi soạn thảo xong script bạn dùng chương trình mã hoá để chọn file script đó rồi click nút encrypt code là xong. File đã mã hóa có phần đuôi ( phần mở rộng) là .vbn và tên file chính là tên file đầy đủ của script chưa được mã hoá. Ví dụ: tên file script chưa được mã hóa là test.vbs thì tên file của script đã được mã hóa là test.vbs.vbn và được lưu cùng thư mục với file gốc. Bạn có thể download chương trình mã hóa tại link sau:
http://cid-24b045babe1439c1.office.l...es/Encrypt.exe
Thông thường chương trình mã hóa này có thể chạy trực tiếp mà ko cần cài đặt. Tuy nhiên tôi vẫn cung cấp link để bạn download chương trình cài đặt trong trường hợp hệ điều hành của bạn chưa hỗ trợ đầy đủ các chức năng của chương trình. Bạn có thể download chương trình cài đặt đó tại link sau:
http://cid-24b045babe1439c1.office.l...es/Encrypt.rar
Như vậy tôi đã giới thiệu cho bạn về vbscriptRunner và việc mã hóa code. Mong rằng chúng sẽ có ích cho bạn. Nếu bạn có bất kỳ ý kiến đóng góp hoặc thắc mắc nào về chương trình bạn cứ tự nhiên gửi mail cho tôi hoặc cứ post comment trên diễn đàn hoặc trên blog của tôi. Trong khả năng của mình, tôi sẽ tiếp thu và cố gắng trả lời cho bạn trong thời gian sớm nhất có thể.
Thân mến.