C# adding context menu item to windows explorer for all file types

守給你的承諾、 提交于 2019-12-18 07:09:12

问题


I'm currently writing an application where I need to modify the context menu of windows explorer so that I can call a method within the application to be used on all files/folders that are seen in windows explorer.

As there are already quite a few posts on stackoverflow (and also tutorials) on how to add the context menu for specific file types I know already that that is done usually by assigning the application to the right parts of the registry entry for those file types.

As I don't want to limit myself to only specific filetypes my question is: IS there any way to assign this new context menu item to ALL filetypes (aside from going through each registry entry beginning with . and assigning the application to them there)?


回答1:


Yes, the * class:

  1. Create the key:

    HKEY_CLASSES_ROOT\*\shell\Open with MyThing

  2. Create the sub key:

    HKEY_CLASSES_ROOT\*\shell\Open with MyThing\command

  3. Set the default value to your command line:

    C:\foo\myThing.exe "%1"

    (You can add fixed values here also: C:\foo\myThing.exe "%1" /ranfromshell)

  4. To set an optional icon create the string value Icon in:

    HKEY_CLASSES_ROOT\*\shell\Open with MyThing

    You can put the path to an icon, dll or exe here - Windows will extract the appropriate icon & display it.


Example

For:


.Reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Open with MyThing]
"Icon"="C:\\foo\\myThing.exe"

[HKEY_CLASSES_ROOT\*\shell\Open with MyThing\command]
@="C:\\foo\\myThing.exe \"%1\""


来源:https://stackoverflow.com/questions/24386469/c-sharp-adding-context-menu-item-to-windows-explorer-for-all-file-types

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!