2010-01-29 38 views
8

Khi nói đến kịch bản Mac, có các lựa chọn thay thế cho Bản tóm tắt không? API của nó có vẻ tuyệt vời, nhưng bản thân ngôn ngữ, từ những gì tôi đã đọc cho đến nay, dường như nhắm vào những người không lập trình.Các giải pháp thay thế cho Bản tóm tắt?

Thông tin chi tiết về điều này sẽ rất hữu ích.

(Tại thời điểm này, tôi đang nghĩ đến việc viết một quản lý cửa sổ ốp lát cho Mac. Vâng, tôi biết một số tồn tại, nhưng đây sẽ là mã nguồn mở. Vâng, tôi biết Xmonad, nhưng nó chỉ thực hiện Cửa sổ X11.)

Cảm ơn!

+0

Đối với cửa sổ ốp lát, API trợ năng có thể là đặt cược tốt nhất của bạn, trực tiếp hoặc thông qua ứng dụng Sự kiện hệ thống AppleScriptable. Tìm hiểu thông tin trên cả hai ví dụ: http://stackoverflow.com/questions/614185/window-move-and-resize-apis-in-os-x – has

+0

phải trung thực, nỗ lực của Apple để tạo ngôn ngữ không phải những người có kỹ thuật có thể hiểu đã làm cho nó * rất * khó đối với những người kỹ thuật như tôi hiểu. – Michael

Trả lời

3

Nếu Ruby là điều của bạn, bạn có thể sử dụng RubyOSA mà cho phép một người sử dụng Ruby để tương tác với Event Manager của Apple:

http://rubyosa.rubyforge.org/

+0

Lưu ý rằng dự án RubyOSA ban đầu không còn được duy trì hoặc hỗ trợ tích cực nữa. Tôi nghĩ rằng có một ngã ba bên thứ ba trên github giải quyết vấn đề tương thích với các phiên bản mới hơn của Ruby; nói rằng, có nhiều lựa chọn thay thế có khả năng và đáng tin cậy hơn được hỗ trợ tích cực. – has

0

Có cầu nối với AppleScript từ ruby, khách quan-c và những người khác.

1

Check-out MacRuby. Ngoài ra còn có các cách tiếp cận thú vị với Python (chủ yếu để viết các plugin) và TCL/TK.

Có thể không phải là thứ cho mục đích bạn mô tả, nhưng cũng có Quartz Composer, một môi trường lập trình trực quan không rõ nhưng thú vị với nhiều tiềm năng.

14

Khi nói đến kịch bản Mac, có các lựa chọn thay thế nào cho Bản tóm tắt không?

Phụ thuộc vào những gì bạn muốn làm. Nếu bạn muốn gửi các sự kiện của Apple đến các ứng dụng khác, có; để chạy tập lệnh từ các ứng dụng nhận thức OSA (Quy tắc thư, tác vụ thư mục, v.v.), không thực sự.

Cách thay thế kỹ thuật tốt nhất là appscript (con tôi), có sẵn cho Python, Ruby và Objective-C trên 10.4+. (Ngoài ra còn có một phiên bản MacRuby, nhưng tôi vẫn chưa thực hiện một bản phát hành công khai nào đó.) Các ứng dụng có tính năng thông minh hơn một chút so với AppleScript và khả năng tương thích ứng dụng của nó rất gần. Dự án của bên thứ ba, vì vậy bạn sẽ cần tự cài đặt (nhưng điều đó đủ dễ dàng miễn là bạn có Xcode) và MIT được cấp phép để bạn có thể phân phối lại khi cần (ví dụ: bao gồm trong gói ứng dụng của bạn). Khá hợp lý tool và hỗ trợ tài liệu, bao gồm online book bởi Matt Neuburg, với hỗ trợ danh sách gửi thư cho các phiên bản Python và Ruby và hỗ trợ email trực tiếp cho những người khác.

Phương án 'chính thức' là Apple Scripting Bridge. API trông rất giống Cocoa, nhưng điều đó thực sự chỉ là rất nhiều smoke and mirrors, điều này cuối cùng làm cho nó ít có khả năng hơn so với AppleScript và dễ bị các vấn đề về khả năng tương thích ứng dụng (và khó khắc phục khi nó không hoạt động). Công cụ, tài liệu và hỗ trợ cộng đồng không phải là tuyệt vời như vậy hoặc (appscript là tốt hơn; AppleScript là tốt hơn vẫn còn). Lợi thế chính của SB là nó được bao gồm trong 10.5+ vì vậy không yêu cầu cài đặt bổ sung để sử dụng. Tôi sẽ không khuyên bạn nên nó cho công việc tự động hóa nhiệm vụ nặng nề do thiếu sót kỹ thuật của nó, nhưng đối với nhiệm vụ tự động hóa khiêm tốn liên quan đến các ứng dụng bắt buộc nó có thể đủ.

Các cây cầu khác tồn tại (ví dụ: Máy Mac của Perl :: Keo, RubyOSA), nhưng chúng không có khả năng, phổ biến và/hoặc được hỗ trợ tích cực.

Tất cả những gì đã nói, nếu bạn muốn thực hiện bất kỳ kịch bản ứng dụng nghiêm túc nào, bạn vẫn sẽ phải học AppleScript vì đó là nơi bạn sẽ tìm thấy số lượng lớn các tài liệu, kịch bản mẫu và chuyên môn cộng đồng. Tất cả những gì bạn sẽ cần, vì phần lớn các ứng dụng có thể viết kịch bản đều nổi tiếng dưới dạng tài liệu.

+0

Công việc tuyệt vời, appscript trông khá tuyệt. –

+2

Đáng buồn thay, [dự án không còn được duy trì] (http://appscript.sourceforge.net/status.html) do các API đã bị Apple từ chối. –

Các vấn đề liên quan