Làm cách nào để mã AppleScript để nhấp chuột vào một mục trên thanh menu?


2

Tôi có một ứng dụng Pomodoro tuyệt vời, nhưng không có phím tắt để bắt đầu và tạm dừng nó. Tôi đã cố gắng viết mã AppleScript trong một giờ qua, đọc tài liệu tham khảo AppleScript và tìm kiếm trực tuyến, nhưng tôi chẳng đi đến đâu.

Những gì tôi muốn làm là có một AppleScript (nó sẽ được khởi chạy từ một ứng dụng có tên BetterTouchTool) nhấp vào tọa độ trên thanh menu, (ứng dụng Pomodoro chạy trong nền và tôi có tất cả các tọa độ cần thiết), cần có một con trỏ trở lại để quay lại con trỏ thứ hai (để quay lại vị trí con trỏ ban đầu), nhấp lần thứ hai vào mục thả xuống 'Bắt ​​đầu / Tạm dừng' (từ tọa độ), sau đó thực hiện quay lại con trỏ thứ hai để đưa con trỏ trở lại ban đầu Chức vụ.

EDIT: ứng dụng này là một ứng dụng hẹn giờ (trong thanh menu) với menu thả xuống có mục đầu tiên là 'Bắt ​​đầu', 'Tạm dừng' hoặc 'Tiếp tục', đó là những gì tôi muốn có thể nhấp qua bàn phím AppleScript được gán.

EDIT2: đã đạt được điều này:

tell application "System Events" 
    click (click at {1447, 10}) 
end tell 
tell application "System Events" to tell process "Pomodoro Timer" 
    click (click at {1456, 37}) 
end tell

Nhưng không biết cách mã hóa con trỏ trở lại và tôi gặp lỗi này:

Sự kiện hệ thống gặp lỗi: Không thể lấy mục thanh menu "00:58" của thanh menu 2 của quy trình ứng dụng "Pomodoro Timer".

Ai đó có thể vui lòng giúp tôi ra?



Thông tin đầy đủ hơn về "ứng dụng Pomodoro" nên được đưa vào câu hỏi của bạn. Ngoài ra, nếu ứng dụng này chạy dưới dạng menu bổ sung , thì nó có thể có thể được script mà không cần chương trình loại nhấp chuột bên ngoài . Tuy nhiên, không có thêm thông tin về "ứng dụng Pomodoro" này, sẽ không có ý nghĩa gì trong việc bình luận thêm.
dùng3439894

Đề nghị của tôi là mở Script Editor và bấm Window trong thanh menu. Sau đó cuộn xuống và nhấp vào Thư viện . Bạn sẽ được cung cấp một danh sách các ứng dụng hiện có trong Thư viện biên tập tập lệnh. Nếu ứng dụng bạn tìm kiếm không có trong danh sách này thì bạn có thể thử nhấp vào biểu tượng + và sau đó điều hướng đến thư mục Ứng dụng nơi đặt ứng dụng. Một khi bạn đã chọn ứng dụng bấm vào mở . Nếu ứng dụng có thể được script, nó sẽ được thêm vào Thư viện biên tập Script, nơi bạn có thể đọc về cách tạo kịch bản để làm cho nó làm những gì bạn muốn nó làm.
I0_ol

@ user3439894 Đây là một ứng dụng hẹn giờ (trong thanh menu) với menu thả xuống có mục đầu tiên là 'Bắt ​​đầu', 'Tạm dừng' hoặc 'Tiếp tục'.
samseva

@ user556068 Ồ, đề nghị tuyệt vời. Ứng dụng này không có kịch bản, nhưng Photoshop thì có. Cảm ơn, điều đó có thể có ích.
samseva

Câu trả lời:


1

Có một bổ sung kịch bản gọi là "Hộp công cụ AppleScript" (đó là một osax). Nhận tại https://astoolbox.wordpress.com/

Với điều đó, bạn có thể chỉ cần viết:

AST click at {10, 20}

Chẳng hạn, nhấp vào thanh menu và mở menu Apple.

Nếu bạn muốn duy trì vị trí con trỏ ban đầu, hãy sử dụng:

set origPos to AST mouse point location

Và để khôi phục nó, hãy sử dụng:

AST set mouse point location origPos

Tuyệt vời. Sử dụng mã này làm cho con trỏ chuột nhấp vào menu thả xuống, nhưng thêm lần nhấp thứ hai 'AST vào {10, 20}' không làm cho chuột nhấp vào mục menu, nhưng nó chỉ làm cho con trỏ chuột di chuyển qua nó. Tôi cần mã nào để bắt đầu một nhấp chuột?
samseva

Bạn có thể đang gây ra một cú đúp, đó không phải là điều bạn muốn. Hãy thử thêm "độ trễ 1" giữa các lần nhấp.
Thomas Tempelmann

Nó đang hoạt động. Chỉ thiếu một điều cuối cùng. Mã nào bạn cần để làm cho con trỏ trở về vị trí ban đầu?
samseva

Nhìn vào Từ điển của AST, ví dụ như sử dụng Script Editor. Ở đó bạn sẽ tìm thấy những nhận xét tương tự để nhận và đặt vị trí chuột mà không cần nhấp. Hãy cho tôi biết nếu bạn không thể tìm ra nó. Ngoài ra, nếu câu trả lời này đã giúp bạn, vui lòng nâng cấp nó và chấp nhận nó là câu trả lời hữu ích. Ngoài ra, nó có thể hữu ích cho người khác nếu bạn thêm giải pháp cuối cùng cho câu hỏi của mình.
Thomas Tempelmann

Chào Thomas. Tôi đã tìm kiếm Trình chỉnh sửa tập lệnh, cũng như Hướng dẫn ngôn ngữ AppleScript, nhưng không thể tìm thấy bất cứ điều gì về "con trỏ trở lại". Ngay bây giờ tôi có: tell application "System Events" AST click at {808, 13} delay 0.1 AST click at {808, 33} end tellNó hoạt động, nhưng con trỏ kết thúc ở nơi nó nhấp và sau đó bạn phải đưa con trỏ trở lại vị trí ban đầu. Bạn có biết nơi để tìm mã "con trỏ trở lại" (tôi biết nó tồn tại, tôi đã thấy nó trong một vài lần: D)?
samseva
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.