2009-10-12 30 views
7

Tôi biết cách thực hiện, và trước đây tôi đã từng đến http://www.codeproject.com/KB/vb/VBFileAssociation.aspx. Câu hỏi của tôi là về việc làm điều đó, liệu có thể đảo ngược nó không? Điều gì xảy ra nếu bạn không biết chương trình của bạn sẽ ở đâu và bạn chỉ đang thử nghiệm nó ngay bây giờ? Có cách nào để nó "tìm" chương trình của bạn, hoặc một cách dễ dàng để chỉnh sửa nơi nó được mở? Đối với vấn đề đó, có thể cho biết liệu tệp đã được liên kết chưa, đó có phải là vấn đề để thử và liên kết lại không? Cuối cùng, làm thế nào bạn có thể thiết lập các tập tin .ico nó sử dụng?Kết hợp các phần mở rộng tệp với một chương trình

Thanks for the help, tôi biết hầu như không có gì về registry và nó confuses me lol ...

Trả lời

17

Để ngắn gọn, tôi đang sử dụng một chìa khóa gốc giả. Trong thực tế, hãy thay thế Hive_Key bằng HKEY_LOCAL_MACHINE cho cài đặt mặc định của hệ thống hoặc HKEY_CURRENT_USER cho cài đặt cho mỗi người dùng. Một trong hai phím này được phép tồn tại hoặc cả hai. Nếu cả hai đều tồn tại, khóa HKCU sẽ được ưu tiên.

Để kết hợp tiện ích với loại tệp, bạn cần đặt giá trị mặc định của khóa tiện ích (Hive_Key\Software\Classes\.ext) bằng loại tệp đã chọn bằng cách đặt giá trị khóa mặc định.

Chương trình thực tế được khởi chạy, cũng như các chi tiết loại tệp khác, được tìm thấy trong loại tệp. Các loại tệp được ghi chú bởi những gì được gọi là ProgID (viết tắt của "Định danh lập trình", đây là phiên bản dễ đọc hơn của Trình nhận dạng lớp). Các khóa ProgID được tìm thấy trong Hive_Key\Software\Classes và giá trị mẫu cho minh họa này có thể là ext_auto_key.

ProgID có thể có giá trị mặc định, sẽ là mô tả thân thiện của loại tệp trong Explorer (chẳng hạn như "Tài liệu Microsoft Word"). Tùy thuộc vào bạn để đảm bảo bạn chọn mô tả dễ hiểu cho người dùng.

ProgID có thể có khóa con, DefaultIcon, là nơi lưu trữ biểu tượng loại tệp. Đường dẫn biểu tượng đó là giá trị mặc định của khóa đó.

Phím ProgID có thể là khóa con, shell, sẽ chứa các mục menu ngữ cảnh trên tệp và chương trình mà mục menu ngữ cảnh đó sẽ gọi. Tương tự như giá trị mặc định của ProgID, giá trị mặc định của khóa động từ là văn bản sẽ hiển thị trên menu ngữ cảnh. Giá trị mặc định của khóa shell này có tên khóa động từ mặc định, là động từ được gọi khi người dùng nhấp đúp vào một tệp.

Các mục menu ngữ cảnh này là Verbs. Ví dụ của chúng tôi, một động từ mở tệp bằng Notepad sẽ trông giống như sau: Hive_Key\Software\Classes\ext_auto_file\shell\open\command với giá trị mặc định notepad.exe %1.

Đây là nơi bạn sẽ đặt đường dẫn chương trình của mình. Nếu chương trình của bạn nằm trong hệ thống PATH, vì notepad.exe là, bạn không cần cần để chỉ định đường dẫn đầy đủ. Trong trường hợp có nhiều khả năng, bạn cần chỉ định đường dẫn đến exe của mình. Đối với mục đích thử nghiệm, bạn chỉ có thể đặt nó làm thư mục xây dựng của bạn.

Bạn đã hỏi cách kiểm tra công cụ này và điều này có thể được thực hiện bằng cách kiểm tra giá trị mặc định của khóa mở rộng để nhận ProgID, sau đó kiểm tra khoá con shell của khóa ProgID để nhận động từ mặc định, sau đó kiểm tra \shell\verb\command có được đường dẫn đến chương trình được khởi chạy.

Có thể khai sáng để mở regedit.exe và duyệt qua các khóa đăng ký đó cho các loại tệp khác để có ý tưởng tốt hơn về cách hoạt động của tất cả các loại tệp đó.

Ngoài ra, điều trên là tất cả hợp lệ nếu tiện ích mở rộng cụ thể không được kiểm soát của một chương trình được đặt làm mặc định (Chương trình mặc định) trong Bảng điều khiển. Bạn có thể kiểm tra trạng thái này bằng cách kiểm tra sự tồn tại của khóa HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice. Nếu có, bạn sẽ cần thu hồi quyền kiểm soát Chương trình Mặc định trước khi các tùy chỉnh của bạn có hiệu lực. Điều này có thể được thực hiện bằng cách xóa khóa con đó UserChoice.

+0

Regedit làm tôi sợ một chút. Cảm ơn đã giúp đỡ! – Cyclone

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