Lưu ký tự xóa ký tự


2

Tôi đã viết một Applescript để khởi chạy và định vị hai trường hợp của một Ứng dụng. Kịch bản chạy hoàn toàn tốt trong trình chỉnh sửa sử dụng mã này:

tell application "App" to activate
tell application "System Events" to tell application process "App"
    set position of window 1 to {8, 22}
end tell
tell application "App 2" to activate
tell application "System Events" to tell application process "App 2"
    set position of window 1 to {914, 22}
end tell

Nó không phải là một ứng dụng có thể tạo script nên tôi đang sử dụng các sự kiện Hệ thống (Tôi cũng đã thay đổi CFBundleName của ứng dụng thứ hai, để nó bao gồm 2 để phân biệt các quy trình). Tất cả điều này hoạt động tốt trong trình soạn thảo khi tôi chạy nó. Tuy nhiên, khi tôi lưu tập lệnh dưới dạng Ứng dụng, nó sẽ loại bỏ "2" khỏi "Ứng dụng 2" bất cứ khi nào tôi lưu ứng dụng, mặc dù nó biên dịch tốt. Có ai có bất cứ ý tưởng tại sao điều này đang xảy ra; Tôi còn khá mới với Applescript.


Không có câu trả lời cho câu hỏi của bạn nhưng những gì bạn đang cố gắng đạt được có thể được thực hiện mà không cần bản sao thứ hai của ứng dụng. Xem tại đây
Vic

Câu trả lời:


1

Bạn có thể tránh sự cố khi biên dịch bằng cách chọn động các ứng dụng trong các sự kiện hệ thống.

tell application "System Events"
    set App1 to (first process whose name is "App")
    tell App1
        set frontmost to true
        set position of window 1 to {8, 22}
    end tell
end tell

Sau đó làm tương tự cho App2.


0

Vấn đề chính là Apple Script Editor không biết bất kỳ Tên "Ứng dụng" nào cũng như "Ứng dụng 2", vì vậy nếu bạn chạy tập lệnh, nó sẽ yêu cầu bạn chọn nơi Ứng dụng được lưu trữ và sau đó thay thế "Ứng dụng" bằng Tên thực tế của ứng dụng. Điều này cũng xảy ra với "Ứng dụng 2".

Vì vậy, nếu bạn hai lần chọn cùng một Ứng dụng (đó là những gì bạn đang cố gắng thực hiện, theo đề cập của bạn), cả hai lần sẽ xóa Tên "Ứng dụng" và "Ứng dụng 2" với cùng tên của Ứng dụng thực tế.

Hoặc nếu bạn sử dụng Ứng dụng làm Tên viết tắt cho Tên thực tế của Ứng dụng thì nó biết Ứng dụng trong Tuyên bố đầu tiên nhưng không phải trong Thứ hai nên nó sẽ chỉ hỏi một lần và chỉ cần thay thế "Ứng dụng 2".

Để làm những gì bạn muốn, tôi khuyên bạn nên thay đổi Script của mình thành một cái gì đó như thế này và thử nó theo cách đó (không được thử nghiệm):

tell application "<Name of Application>" to activate --open first Window
tell application "<Name of Application>" to activate --open second Window

tell application "System Events" to tell application process "<Name of Application>"
    set position of window 1 to {8, 22}
    set position of window 2 to {914, 22}
end tell

nếu điều này không hoạt động, có lẽ bạn có thể chấp nhận Tập lệnh này để di chuyển hai Windows Finder bên cạnh mở.

property monitor_width : 980
property monitor_height : 768

set the startup_disk to (path to startup disk)

tell application "Finder" activate
    set visible of (every process whose visible is true and frontmost is false) to false
    -- BOTTOM WINDOW
    set this_window to make new Finder window
    set the target of this_window to the startup_disk
    set the bounds of this_window to {0, (monitor_height * 0.55) div 1, monitor_width, monitor_height}
    set the current view of this_window to column view
    -- TOP WINDOW
    set this_window to make new Finder window
    set the target of this_window to the startup_disk
    set the bounds of this_window to {0, (monitor_height * 0.06) div 1, monitor_width, (monitor_height * 0.53) div 1}
    set the current view of this_window to column view
end tell

Nguồn: http://hints.macworld.com/article.php?story=20011127022706921

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.