LậptrìnhAppleScript Collection by traibingo 1 1. Sẵn sàng nghe lệnh. Có những lúc mà cơn làm biếng dâng trào, ta chẳng muốn làm gì nữa, chỉ muốn ngồi một chỗ và ra lệnh để ai đó làm tất cả mọi thứ cho mình . Những khi lười biếng như vậy thì AppleScript có thể là một trợ thủ đắc lực để bạn ra lệnh cho em Mac của mình phải làm việc. Chúng ta hãy nghiên cứu thử xem làm thế nào nhé :) AppleScript cung cấp cho chúng ta một cấu trúc rất đơn giản để ra lệnh cho các chương trình đã cài trong máy Mac của bạn. tell application "#tên chương trình#" #công việc cần làm# end tell Trong đó, #tên chương trình# chính là tên chương trình đã cài trong máy của bạn, chương trình mà bạn muốn ra lệnh cho nó phải làm công việc gì đó. Có thể là "Finder", hoặc "iChat", hoặc "iPhoto" . Ví dụ đơn giản, bạn muốn mở Finder với ổ đĩa mặc định là ổ đĩa khởi động, bạn sẽ làm như sau. LậptrìnhAppleScript Collection by traibingo 2 Bây giờ hãy nhấn nút Run thử xem kết quả nhé. Kết quả của bạn cũng tương tự như hình trên đúng không? Quá đơn giản phải không bạn? Bây giờ hãy thử làm một công việc phức tạp hơn 1 tí nữa nhé. Ta cùng mở sọt rác ra và dọn sạch sọt rác nhé. Cấu trúc cũng tương tự như vậy. Như bạn cũng thấy đó, AppleScript được thiết là một ngôn ngữ rất giống với tiếng Anh, nên việc sử dụng cũng rất dễ dàng. Bây giờ bạn đang nghe một bài nhạc trong iTunes, làm sao để bạn có thể lấy tên của bài nhạc bạn đang nghe? Thật là đơn giản, nếu bạn không tin thì hãy xem hình dưới nhé ;) LậptrìnhAppleScript Collection by traibingo 3 Quá đơn giản! Câu lệnh bạn cần phải viết là get the name of current track, hoàn toàn giống như tiếng Anh. Ví dụ cuối cùng có vẻ phức tạp nhất cho đến thời điểm này, chúng ta sẽ lấy tên của bài hát đang nghe ở iTunes để làm status cho iChat. Đây là đoạn code và kết quả mà chúng ta thu được. tell application "iTunes" set dang_nghe to get the name of current track end tell tell application "iChat" set status message to dang_nghe end tell Đây chính là đoạn mã chúng ta cần để làm công việc trên. dang_nghe là một biến để lưu tạm thời tên bài hát đang nghe trên iTunes. Câu lệnh "set status message to dang_nghe" sẽ làm công việc là đặt tên bài hát (đã lưu trong biến dang_nghe) lên status của iChat. Bạn hãy làm thử xem nào. Phần này mình chỉ giới thiệu sơ nét về cấu trúc lệnh tell application. Những bài sau mình sẽ giới thiệu những chức năng nâng cao của cấu trúc này. Chúc các bạn vui với AppleScript ;) LậptrìnhAppleScript Collection by traibingo 4 2. Hiển thị hộp hội thoại. Bài viết này, mình xin giới thiệu với các bạn về cách để hiểu thị lên những hộp hội thoại để cung cấp cho người dùng, mục đích chính là tạo nên sự tương tác giữa người dùng và hệ thống. Công việc đơn giản nhất là hiển thị lên màn hình một hộp hội thoại để thông báo một trạng thái nào đó. Việc hiển thị một thông báo được thực hiện với cấu trúc như sau: display dialog "#Nội dung#" Chúng ta hãy cùng nhau xem ví dụ dưới đây nhé! LậptrìnhAppleScript Collection by traibingo 5 Rất đơn giản, theo đúng như cấu trúc ở trên, kết quả thu được sẽ là một hộp hội thoại với nội dung là "Chào mừng bạn đến với AppleScript. Khi này, chúng ta sẽ thấy 2 nút bấm (button) được hiển thị là "OK" và "Cancel", đây là 2 nút bấm mặc định của hệ thống. Điều này không có nghĩa là chúng ta bị buộc phải sử dụng 2 loại nút này. Việc định nghĩa các nút bấm riêng cũng rất đơn giản bằng cấu trúc sau: display dialog "#Nội dung#" buttons {"#tên nút 1#", "tên nút 2", ., "tên nút n"} Với cấu trúc này, chúng ta có thể tạo bao nhiêu nút bấm tùy thích, tất cả các nút bấm được định nghĩa theo cấu trúc trên sẽ được hiển thị trên hộp hội thoại. Hãy cùng nhau xem ví dụ tiếp theo nhé! Chúng ta cũng có thể đặt nút bấm nào sẽ là nút bấm mặc định bằng cách thêm vào câu lệnh trên một mệnh đề "default button" như sau: display dialog "#Nội dung#" buttons {"#tên nút 1#", "#tên nút 2#", ., "#tên nút n#"} default button "#tên nút mặc định#" Sau khi đã định nghĩa được các nút bấm trong hộp hội thoại của mình, câu hỏi tiếp theo là làm sao để biết rằng người dùng đã bấm nào nút nào. Làm sao để biết được? Có rất nhiều cách. Ở đây mình giới thiệu với các bạn cách đơn giản nhất như ở ví dụ này nhé! LậptrìnhAppleScript Collection by traibingo 6 Ví dụ trên là một cách đơn giản nhất để nhận biết đâu là nút bấm mà người dùng vừa mới bấm. Cấu trúc chung để kiểm tra nút bấm nào vừa được bấm như sau: if "#tên nút cần kiểm tra#" is button returned of result then #Công việc muốn làm# end if Giải thích cho ví dụ trên: người dùng sẽ nhận được một hộp hội thoại với câu hỏi là "Bạn có yêu em Mac của mình không?", với 3 nút bấm "Có", "Không" và "Không biết nữa". Chỉ khi người dùng bấm vào nút "Có" thì một hộp hội thoại khác được hiện ra với nội dung "Tất nhiên là phải yêu rồi!", nếu người dùng bấm vào 2 nút kia thì chương trình sẽ kết thúc. Bây giờ thì bạn đã biết được những bước cơ bản để tạo ra những hội hội thoại để tương tác với người dùng. Những bài sau mình sẽ giới thiệu tiếp những phần nâng cao hơn về hộp hội thoại và sự tương tác. . như sau. Lập trình AppleScript Collection by traibingo 2 Bây giờ hãy nhấn nút Run thử xem kết quả nhé. Kết quả của bạn cũng tương tự như hình trên đúng. cao của cấu trúc này. Chúc các bạn vui với AppleScript ;) Lập trình AppleScript Collection by traibingo 4 2. Hiển thị hộp hội thoại. Bài viết này, mình