我已經開發了一個應用程序,該應用程序使用窗口的上下文菜單(右鍵單擊該文件)加載圖像,目前正在工作,但註冊表項已打開只爲特定文件類型添加菜單項到windows上下文菜單
HKEY_CLASSES_ROOT\*
它適用於所有文件。
我希望上下文菜單中的菜單項只能用.jpg文件顯示。
我能做到嗎?我應該使用哪個註冊表項?
在此先感謝。
我已經開發了一個應用程序,該應用程序使用窗口的上下文菜單(右鍵單擊該文件)加載圖像,目前正在工作,但註冊表項已打開只爲特定文件類型添加菜單項到windows上下文菜單
HKEY_CLASSES_ROOT\*
它適用於所有文件。
我希望上下文菜單中的菜單項只能用.jpg文件顯示。
我能做到嗎?我應該使用哪個註冊表項?
在此先感謝。
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
),使上下文菜單顯示您想要的項目的任何標籤。
這是您的基本概述。當然看看我回答這個問題有關關聯文件,其中有一個類似的答案:
有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\""
非常感謝您! – 2010-01-24 19:01:29
我知道這種方法將條目添加到上下文菜單。但是,您是否還可以提及如何將任何條目設置爲默認值?我知道如何使用「文件夾選項」來做到這一點,但命令行或註冊表選項會很好。 (我認爲我們需要用'editflags'輸入字符,但不確定。) – anishsane 2014-01-21 07:21:10
@anishsane將'shell'鍵的默認值設置爲您希望默認的動詞鍵的名稱 – 2014-01-21 14:30:19