2010-01-23 31 views
37

Tôi đã nhúng một ứng dụng tải hình ảnh bằng menu ngữ cảnh của cửa sổ (nhấp chuột phải vào tệp) và thời điểm này đang hoạt động, nhưng phím reg đang bậtThêm mục menu vào menu ngữ cảnh của cửa sổ chỉ dành cho loại tệp cụ thể

HKEY_CLASSES_ROOT\* 

và nó hoạt động với tất cả các tệp.

Tôi muốn rằng mục menu trên menu ngữ cảnh sẽ chỉ được hiển thị với các tệp .jpg.

Tôi có thể làm điều đó? Tôi nên sử dụng khóa đăng ký nào?

Xin cảm ơn trước.

Trả lời

69

1) Xác định các loại tập tin (ProgID) cho .jpg file

này có thể được thực hiện bằng cách kiểm tra giá trị mặc định của HKEY_CLASSES_ROOT\.jpg. Nó có thể là bất cứ điều gì dựa trên những gì bạn đã cài đặt, nhưng với mục đích của ví dụ này, chúng tôi sẽ gọi nó là jpegfile, một mặc định chung.

2) Thiết lập menu ngữ cảnh (động từ) tính cho loại tệp

Bạn có thể đặt mục menu ngữ cảnh cho mỗi người dùng trong HKEY_CURRENT_USER\Software\Classes\jpegfile\shell. Phím này có danh sách các động từ cho loại tệp. Có một khóa tương tự trong HKEY_LOCAL_MACHINE\Software\Classes\jpegfile\shell và đây là các giá trị mặc định của hệ thống đối với loại tệp. Bạn cũng có thể đặt một khóa động từ ở đó, nhưng nếu khóa tương tự tồn tại trong HKCU, nó sẽ bị ghi đè, vì vậy hãy thông báo.

3) Thiết lập giá trị lệnh

Các trần giá trị quan trọng tối thiểu mà cần phải được thiết lập để cho nó hoạt động là giá trị mặc định của command khóa. Bạn cần đặt đường dẫn đó với đường dẫn đến ứng dụng của mình, như vậy: HKEY_CURRENT_USER\Software\Classes\jpegfile\shell\open_with_myapp\command sẽ được đặt thành "c:\path\to\myapp.exe" "%1". Bây giờ trình đơn ngữ cảnh cho các tệp .jpg sẽ có một mục "open_with_myapp" sẽ khởi chạy ứng dụng của bạn khi được nhấp và chuyển tên tệp của tệp đã chọn làm tham số. Tất nhiên, cách ứng dụng của bạn xử lý các tham số tùy thuộc vào bạn, vì vậy, bạn cần phải đặt chuỗi thông số thành một thứ mà ứng dụng của bạn có thể xử lý.

4) Thiết lập các thuộc tính động từ khác

Tôi muốn tưởng tượng có thể bạn sẽ muốn các mục trình đơn ngữ cảnh để đọc một cái gì đó nhiều hơn một chút thân thiện hơn so với tên chủ chốt. Bạn có thể có menu ngữ cảnh hiển thị bất kỳ nhãn nào bạn muốn cho mục của mình bằng cách đặt giá trị mặc định của khóa đó (open_with_myapp).

Đó là tổng quan cơ bản của bạn. Chắc chắn kiểm tra câu trả lời của tôi cho câu hỏi này về liên kết một tập tin, trong đó có một câu trả lời tương tự:

+0

Cảm ơn bạn rất nhiều! –

+2

Tôi biết phương pháp này để thêm mục nhập vào menu ngữ cảnh. Tuy nhiên, bạn có thể đề cập đến cách thực hiện bất kỳ mục nhập nào theo mặc định không? Tôi biết làm thế nào để làm điều này bằng cách sử dụng "tùy chọn thư mục", nhưng dòng lệnh hoặc tùy chọn đăng ký sẽ là tuyệt vời. (Tôi nghĩ chúng ta cần làm điều đó với mục nhập từ 'editflags', nhưng không chắc chắn.) – anishsane

+1

@anishsane đặt giá trị mặc định của khóa 'shell' thành tên của khóa động từ mà bạn muốn là mặc định –

0

another key trên registry mà làm việc độc lập với chương trình mặc định của người dùng: HKEY_CLASSES_ROOT\SystemFileAssociations. Vì không ai đề cập đến câu hỏi này ... Không cần kiểm tra ProgID trước khi thêm mục menu ngữ cảnh.Ví dụ:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\subtitle] 
@="Search subtitles..." 

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\subtitle\command] 
@="\"D:\\Tools\\subsearch.exe\" \"%1\"" 
Các vấn đề liên quan