Khi bạn chọn một tệp, mở cửa sổ Nhận thông tin và chọn một ứng dụng không mặc định khác, ràng buộc Dịch vụ khởi chạy này được lưu trong ngã ba tài nguyên của chính tệp đó, trong 'usro'
tài nguyên (Ghi đè người dùng). Theo tôi biết, định dạng của tài nguyên này là riêng tư, được xác định bởi Apple và có thể thay đổi. (Tất cả các ký tự chữ thường trong tên OSType cung cấp một đầu mối, vì Apple bảo lưu loại tệp, mã người tạo và loại tài nguyên với tất cả các ký tự chữ thường. Ví dụ: 'icns'
loại tài nguyên (Icon Suite), 'ttxt'
(ban đầu từ Dạy Văn bản, nhưng hiện là người tạo mã (CFBundleSignature) của TextEdit.app), v.v.).
Tài nguyên này được tạo bằng các hàm Trình quản lý tài nguyên để sửa đổi ngã ba của tệp, từ đó cập nhật ngày sửa đổi của tệp.
Một tệp ví dụ mà tôi vừa thử quy trình này được hiển thị trong hình bên dưới, được mở trong Resorcerer. (Lưu ý đặc biệt: bạn sẽ thấy ở cột bên trái rằng có 2 loại được liệt kê: 'TEXT'
và 'usro'
Có trên thực tế chỉ có một. 'usro'
Entry; Resorcerer cho thấy rằng có một 'TEXT'
entry tài nguyên vì nó chú ý đến nội dung trong của tập tin nĩa dữ liệu được dựa trên văn bản (một tệp tiêu đề mã nguồn) và do đó cung cấp quyền truy cập thuận tiện vào nó). Hình ảnh thứ hai cho thấy nội dung của tài nguyên này, về cơ bản chứa một đường dẫn đến ứng dụng đích mà tôi đã chọn.
Vì 'usro'
tài nguyên Ghi đè người dùng này được lưu dưới dạng một phần của chính tệp, điều đó giải thích tại sao Hướng dẫn lập trình dịch vụ khởi chạy: Chọn tùy chọn liên kết cho tệp yêu cầu như sau:
Lưu ý: Tùy chọn ràng buộc rõ ràng cho các mục riêng lẻ không dành riêng cho người dùng nhưng trên toàn hệ thống, chúng tiếp tục áp dụng cho mục đã cho trên cùng một máy tính, ngay cả khi người dùng khác đăng nhập.
Bây giờ, để tiến thêm một bước. Nếu bây giờ bạn nhấp vào Change All
nút để biến điều này thành ghi đè toàn cục, Launch Services sẽ xóa 'usro'
mục nhập tài nguyên và thay vào đó tạo liên kết toàn cầu được lưu trữ trong tệp com.apple.LaunchService.plist (tùy chọn theo người dùng). Xóa 'usro'
mục nhập được thực hiện bằng cách sử dụng các chức năng Trình quản lý tài nguyên, sẽ cập nhật ngày sửa đổi của tệp. Lưu ý rằng trong khi nó loại bỏ 'usro'
tài nguyên, nó có thể không xóa toàn bộ ngã ba tài nguyên. Trong hầu hết các trường hợp, 286 byte sẽ vẫn còn trong ngã ba tài nguyên, về cơ bản là không gian tối thiểu được chiếm bởi tiêu đề tài nguyên và bản đồ tài nguyên.