2010-01-23 247 views
37

我已經開發了一個應用程序,該應用程序使用窗口的上下文菜單(右鍵單擊該文件)加載圖像,目前正在工作,但註冊表項已打開只爲特定文件類型添加菜單項到windows上下文菜單

HKEY_CLASSES_ROOT\* 

它適用於所有文件。

我希望上下文菜單中的菜單項只能用.jpg文件顯示。

我能做到嗎?我應該使用哪個註冊表項?

在此先感謝。

回答

69

1)識別文件類型(進程id)爲.jpg文件

這可以通過檢查的HKEY_CLASSES_ROOT\.jpg的默認值來完成。它可以是基於你安裝的任何東西,但爲了這個例子的目的,我們將其稱爲jpegfile,這是一個通用的默認設置。

2)該文件類型

可以在HKEY_CURRENT_USER\Software\Classes\jpegfile\shell設置每個用戶的上下文菜單項設置上下文菜單項(動詞)的屬性。該鍵具有文件類型的動詞列表。 HKEY_LOCAL_MACHINE\Software\Classes\jpegfile\shell中有一個類似的密鑰,這些是文件類型的系統默認值。你也可以在那裏放一個動詞鍵,但是如果HKCU中存在相同的鍵,它將被覆蓋,所以建議。

3)設定指令值

需要被設置爲得到它的工作是command子項的默認值的最低限度的鍵值。您需要將其設置爲應用程序的路徑,如下所示:HKEY_CURRENT_USER\Software\Classes\jpegfile\shell\open_with_myapp\command將設置爲"c:\path\to\myapp.exe" "%1"。現在,.jpg文件的上下文菜單將包含一個「open_with_myapp」項目,該項目將在單擊時啓動您的應用程序,並將所選文件的文件名作爲參數傳遞。當然,您的應用程序如何處理參數取決於您,因此您需要將參數字符串設置爲應用程序可以處理的內容。

4)設置其他動詞性質

我想像你可能會想上下文菜單項來讀的東西一點點比鍵名更友好。您可以通過設置該鍵的默認值(open_with_myapp),使上下文菜單顯示您想要的項目的任何標籤。

這是您的基本概述。當然看看我回答這個問題有關關聯文件,其中有一個類似的答案:

+0

非常感謝您! – 2010-01-24 19:01:29

+2

我知道這種方法將條目添加到上下文菜單。但是,您是否還可以提及如何將任何條目設置爲默認值?我知道如何使用「文件夾選項」來做到這一點,但命令行或註冊表選項會很好。 (我認爲我們需要用'editflags'輸入字符,但不確定。) – anishsane 2014-01-21 07:21:10

+1

@anishsane將'shell'鍵的默認值設置爲您希望默認的動詞鍵的名稱 – 2014-01-21 14:30:19

0

another key對作品的獨立用戶的默認程序註冊表:HKEY_CLASSES_ROOT\SystemFileAssociations。由於在這個問題上沒有人提到它......在添加上下文菜單項之前,不需要檢查ProgID。例如:

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\"" 
相關問題