VicoTas
Câu hỏi
Hin Hin89
08/08/2013 21:37

Hướng dẫn sử dụng UI Scripting của Applescript trong Mac ?



Danh sách câu trả lời (1)
avatar puppylove88 08/08/2013 21:37

Bất kỳ ai đã và đang sử dụng máy vi tính đều hiểu sự mệt mỏi khi phải thực hiện một chuỗi các thao tác giống nhau, lặp đi lặp lại. Lúc này chúng ta cần đến một giải pháp sao cho đơn giản, tiện lợi hơn. Nếu bạn là fan của Mac OSX, AppleScript sẽ là sự lựa chọn hàng đầu.

AppleScript là một ngôn ngữ kịch bản (script) được xây dựng gần giống với tiếng Anh, ứng dụng để điều khiển những hoạt động của hệ thống cũng như các chương trình đang chạy trên hệ thống đó. Tuy nhiên nếu đã quen thuộc với ngôn ngữ này, bạn sẽ dễ dàng nhận thấy hạn chế của nó. Cụ thể, không phải tất cả các chương trình đều có thể thao tác trực tiếp với AppleScript. Bài viết sau đưa ra hướng giải quyết để lấp đầy chỗ trống này, đó là sử dụng giao diện người dùng (UI) AppleScript, đồng thời chúng tôi cung cấp một số script đơn giản nhằm giúp bạn hiểu rõ hơn cách thực hiện.

Kích hoạt UI Scripting

Đầu tiên, để có thể sử dụng UI Scripting, vào System Preferences > Universal Access > đánh dấu chọn vào mục Enable access for assistive devices.

Hướng dẫn sử dụng UI Scripting của Applescript trong Mac

Sử dụng Key Strokes

Một cách đơn giản để tương tác với giao diện của chương trình bằng Applescript là giả lập sự tham gia của tổ hợp phím (KeyStrokes), giống như bạn sử dụng những shortcut trong Mac và nhập vào các dòng lệnh.

Chẳng hạn, trong TextEdit bạn muốn thực hiện quá trình tìm kiếm – thay thế kết quả tìm kiếm. Trước tiên nhấn CMD-F cho chức năng Find/Replace, nhập vào từ cần tìm tại mục Find, nhấn tab để chuyển tới trường tiếp theo và nhập vào từ cần thay thế, sau đó nhấn “Replace All”.

Hướng dẫn sử dụng UI Scripting của Applescript trong Mac

Trong Applescript, bạn cũng có thể "nói" cho giao diện người dùng gõ các lệnh này. Bạn có thể thay thế CMD-F bởi lệnh keystroke “f” using {command down} trong Applescript. Tương tự như vậy, để thực thi phím CMD-SHIFT-S bạn có thể sử dụng keystroke “s” using {command down, shift down}. Bạn cũng có thể nhập vào UI với Applescript bởi keystroke “mytext”, nơi bạn có thể nhập văn bản của mình. Cuối cùng bạn có thể nhập vào một số KeyStrokes đơn giản như TAB bằng keystroke tab.

Hướng dẫn sử dụng UI Scripting của Applescript trong Mac

Trước khi sử dụng KeyStrokes, bạn cần chắc chắn rằng các class của quy trình đều được gọi, và đừng quên kết thúc sau các lệnh :

tell application “System Events”
tell process “TextEdit”

Dưới đây là một đoạn code đầy đủ cho hành động tìm kiếm/thay thế theo trình tự:

Hướng dẫn sử dụng UI Scripting của Applescript trong Mac

tell application "TextEdit"
      activate
      open "Users:angela:Desktop:Example.txt"
      if window 1
exists then

         (* Start Find/Replace Sequence *)
         tell application "System Events"
              tell process "TextEdit"
                   keystrokes "f" using {command down}
                   keyStrokes " "
                   keyStrokes tab
                   keyStrokes
" "
           
    end tell

               tell process "TextEdit"
                    tell window "Find"
                         click button "Replace All"
                    end tell
                end tell

                tell process "TextEdit"
                     tell window "Find"
                          keystrokes "w" using {command down}
                     end tell
                end tell
         end tell

        
(* End Find/Replace Sequence *)

Mỗi chương trình đều có một số nút để lựa chọn chức năng, bạn có thể sử dụng các lệnh đơn giản trong Applescript để điều khiển chúng. Ở đây, với tính năng find/replace chúng ta đã tạo ra nút "Replace All”.

Thao tác GUI phức tạp hơn

Cũng như nhiều chương trình không được thiết kế trong Mac để xử lý bởi AppleScript thông qua UI Scripting, đôi khi bạn cần tìm xung quanh để giải quyết vấn đề này. Ở đây chúng ta sẽ sử dụng chương trình miễn phí có tên UIElementInspector.

Một khi được khởi chạy, bạn có thể kiểm tra bất kỳ phần tử UI nào mình muốn. Quá trình này sẽ diễn ra liên tục và hiển thị chi tiết mỗi khi bạn di chuyển qua.

Trong ví dụ này, bạn sẽ nhìn thấy một hệ thống được phân cấp. Menu pop-up là một phần của nhóm, nhóm này lại là một phần của nhóm khác trong một sheet của cửa sổ.

Hướng dẫn sử dụng UI Scripting của Applescript trong Mac

Bây giờ là cách làm thế nào thể hiện quá trình này trong script:

tell group 1 of group 1 of sheet 1 of window 1
tell pop up button 1
click

Để script có thể làm việc bạn cần sử dụng đoạn code đầy đủ sau:

(* save as RTF *)
tell application "System Events" to set frontmost of process "TextEdit" to true
tell application "System Events"
     tell process "TextEdit"
          keystrokes "s" using {command down, shift down}
          tell group 1 of group 1 of sheet 1 of window 1
               tell pop up button 1
                    click
                    tell menu 1
                         click menu item "Rich Text Format (RTF)"
                    end tell
                end tell

                delay 0.5
           end tell
           tell sheet 1 of window 1
                tell button "Save" to click
           end tell
       end tell
end tell

(* end save as RTF *)

close document 1 saving no
else
    exit repeat
end if

  end tell

Trong trường hợp này, chúng tôi muốn lưu lại tài liệu dưới dạng RTF. Sử dụng một lệnh keyStrokes để mở cửa sổ "Save As". Bạn cần kích vào menu pop-up để làm xuất hiện menu chứa các mục lựa chọn.

Hy vọng rằng sau khi làm quen với cách làm việc trên Applescripts bạn sẽ có thể áp dụng nhiều hơn cho công việc hàng loạt của mình. Chúc các bạn thành công!

Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Máy vi tính
nophoto Tìm driver cho laptop Sony vaio EH25EG ?

Đăng lúc: 21:37 - 08/08/2013 trong Máy vi tính

nophoto Bạn sẽ mua tablet nào ?

Đăng lúc: 21:37 - 08/08/2013 trong Máy vi tính

nophoto Có nên sử dụng windows 8 trong thời điểm này ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Ứng dụng của hệ điều hành window ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Xin tư vấn mua bộ máy core i7 dùng cho đồ họa ngành kiến trúc ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Gía sản phẩm này là bán hay cho thuê?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Mua laptop trả góp ở đâu?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Cho hỏi giá trên có bao gồm USB 3G chưa?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Nên mua laptop 11 inch nào thì tốt ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Đánh giá chất lượng máy tính bảng Win 7 Ocosmos OSC9?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Cách chuyển từ PDF sang Word, PowerPoint, EXEL có crack

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Cần tư vấn build 1 em pc từ 12 -> 16 triệu?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Làm thế nào khi máy tính hay bị treo ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Tại sao Ram máy tính chạy ko hết công suất ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Ai hướng dẫn em cách Ghost lại Máy Tính với!

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Làm sao copy CD qua máy tính ko phải shortcut ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Lỗi wifi cần giúp đỡ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Đánh giá laptop Toshiba Qosmio F750: laptop chơi game 3D ?

Đăng lúc: 21:36 - 08/08/2013 trong Máy vi tính

nophoto Khởi động D600 báo là Primary hard disk drive 0 not found ?

Đăng lúc: 21:35 - 08/08/2013 trong Máy vi tính

nophoto Cần các pác tư vấn giúp nơi mua 1 bộ máy tính bàn

Đăng lúc: 21:35 - 08/08/2013 trong Máy vi tính

Rao vặt Siêu Vip