Tôi có một Applescript sẽ kết nối hồ sơ VPN của tôi khi máy tính của tôi khởi động. Tuy nhiên, nếu máy tính của tôi ngủ, kết nối VPN bị hỏng và tập lệnh không kết nối lại được. Ngoài ra, nếu có ngắt kết nối máy chủ, tập lệnh cũng không kết nối lại.
Đây là kịch bản của tôi:
tell application "System Events"
tell current location of network preferences
set myVPN to the service "MyVPN"
if myVPN is not null then
if current configuration of myVPN is not connected then
connect myVPN
end if
end if
end tell
return 60
end tell
end idle
Tôi không đủ quen thuộc với Applescript để biết nếu điều này là có thể, nhưng với một số ngôn ngữ lập trình / lập trình khác, bạn có thể lắng nghe các sự kiện và trả lời chúng.
Liệu Applescript có khả năng đáp ứng với các sự kiện hệ thống và có sự kiện hệ thống nào kích hoạt khi cấu hình VPN bị ngắt kết nối không?
Không, nói chung, AppleScript không thể nghe các sự kiện. Bạn có thể chạy tập lệnh ở chế độ nền liên tục thăm dò tên và trạng thái kết nối của cấu hình mạng hiện tại, nhưng tôi không nghĩ đó là một cách tốt để thực hiện. AppleScriptObjC có thể được sử dụng để tạo một trình lắng nghe sự kiện để theo dõi trạng thái thức của hệ thống, nhưng tôi không chắc chắn chi phí này là gì và hiệu quả của một kịch bản như vậy. Tốt nhất của bạn có lẽ là sử dụng tùy chọn của bên thứ ba.
—
CJK