Integrating into Windows Explorer context menuInteraction of other programs outside applicationHow to add a menu item in Windows right-click menuCan you create a windows explorer plugin using .net?Windows Explorer Menu using C#Get commands behind windows explorer context menu verbs.NET COM Library is not unloaded from C++ host processAdd right-click context menu only in desktopAdding Java program to windows explorerMenu in python with encrypt & decryptProgrammatically access the “Open with” Windows Explorer menu list from .NETUsing Windows Explorer context menus within WPFIs it possible to replace the windows explorer context menu with something other than a menu?Adding a menu item to Windows Explorer right click context menu in C#Insert a Context menu Item to Explorer and pass the Full File Name when Context Menu item is Clickedwindows explorer context menu stripDebug an application that was launched via explorer context menuFilter files in Windows Explorer ProgrammaticallyAdd right-click context menu only in desktopHow integrate uwp app into context menu of windows explorer for jpg?

Bitcoin successfully deducted on sender wallet but did not reach receiver wallet

Is there a standardised way to check fake news?

How to assign many blockers at the same time?

How to reduce Sinas Chinam

What is this "Table of astronomy" about?

Is this n-speak?

How do some PhD students get 10+ papers? Is that what I need for landing good faculty position?

Can the ground attached to neutral fool a receptacle tester?

Normalization constant of a planar wave

PhD advisor lost funding, need advice

Is it okay for a ticket seller in the USA to refuse to give you your change, keep it for themselves and claim it's a tip?

Are differences between uniformly distributed numbers uniformly distributed?

Does fossil fuels use since 1990 account for half of all the fossil fuels used in history?

How can I decide if my homebrew item should require attunement?

What does the phrase "pull off sick wheelies and flips" mean here?

What should I call bands of armed men in the Middle Ages?

80's/90's superhero cartoon with a man on fire and a man who made ice runways like Frozone

Is this curved text blend possible in Illustrator?

On the Rømer experiments and the speed of light

How to describe accents?

A continuous water "planet" ring around a star

Breadcrumb history decision

Can "être sur" mean "to be about" ?

Why did Gandalf use a sword against the Balrog?



Integrating into Windows Explorer context menu


Interaction of other programs outside applicationHow to add a menu item in Windows right-click menuCan you create a windows explorer plugin using .net?Windows Explorer Menu using C#Get commands behind windows explorer context menu verbs.NET COM Library is not unloaded from C++ host processAdd right-click context menu only in desktopAdding Java program to windows explorerMenu in python with encrypt & decryptProgrammatically access the “Open with” Windows Explorer menu list from .NETUsing Windows Explorer context menus within WPFIs it possible to replace the windows explorer context menu with something other than a menu?Adding a menu item to Windows Explorer right click context menu in C#Insert a Context menu Item to Explorer and pass the Full File Name when Context Menu item is Clickedwindows explorer context menu stripDebug an application that was launched via explorer context menuFilter files in Windows Explorer ProgrammaticallyAdd right-click context menu only in desktopHow integrate uwp app into context menu of windows explorer for jpg?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








36















I want to write a small tool, that does the following:



When you right click on a file with a certain file-extension the Windows Explorer context menu shows an additional entry.



When you click this entry a certain EXE is launched with this file as one of its parameters.



I would like to use C#/.NET 2.0 for this. If it's not possible I could also do it with C++/Win32.



My questions are:



  1. Is it possible with C# .NET 2.0?

  2. What are the necessary functions for integrating into the Windows Explorer context menu?

  3. How can I make this permanent? (I don't want to relaunch this tool after every boot)

  4. What do I have to take special care of? (different OS, security permissions, etc.)









share|improve this question
































    36















    I want to write a small tool, that does the following:



    When you right click on a file with a certain file-extension the Windows Explorer context menu shows an additional entry.



    When you click this entry a certain EXE is launched with this file as one of its parameters.



    I would like to use C#/.NET 2.0 for this. If it's not possible I could also do it with C++/Win32.



    My questions are:



    1. Is it possible with C# .NET 2.0?

    2. What are the necessary functions for integrating into the Windows Explorer context menu?

    3. How can I make this permanent? (I don't want to relaunch this tool after every boot)

    4. What do I have to take special care of? (different OS, security permissions, etc.)









    share|improve this question




























      36












      36








      36


      10






      I want to write a small tool, that does the following:



      When you right click on a file with a certain file-extension the Windows Explorer context menu shows an additional entry.



      When you click this entry a certain EXE is launched with this file as one of its parameters.



      I would like to use C#/.NET 2.0 for this. If it's not possible I could also do it with C++/Win32.



      My questions are:



      1. Is it possible with C# .NET 2.0?

      2. What are the necessary functions for integrating into the Windows Explorer context menu?

      3. How can I make this permanent? (I don't want to relaunch this tool after every boot)

      4. What do I have to take special care of? (different OS, security permissions, etc.)









      share|improve this question
















      I want to write a small tool, that does the following:



      When you right click on a file with a certain file-extension the Windows Explorer context menu shows an additional entry.



      When you click this entry a certain EXE is launched with this file as one of its parameters.



      I would like to use C#/.NET 2.0 for this. If it's not possible I could also do it with C++/Win32.



      My questions are:



      1. Is it possible with C# .NET 2.0?

      2. What are the necessary functions for integrating into the Windows Explorer context menu?

      3. How can I make this permanent? (I don't want to relaunch this tool after every boot)

      4. What do I have to take special care of? (different OS, security permissions, etc.)






      c# .net explorer file-extension






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 3 '09 at 10:16









      Peter Mortensen

      14.3k19 gold badges88 silver badges116 bronze badges




      14.3k19 gold badges88 silver badges116 bronze badges










      asked Dec 3 '09 at 9:50









      clampclamp

      14.1k70 gold badges184 silver badges283 bronze badges




      14.1k70 gold badges184 silver badges283 bronze badges

























          2 Answers
          2






          active

          oldest

          votes


















          25














          You will need to access the registry and add a key under root\File\shell or rootFolder\shell, depending on which items you want the menu item visible on.



          Try this article at CodeProject, it's quite useful.



          Edit: There's another article here which may be of help.






          share|improve this answer



























          • codeproject.com/KB/cs/dateparser.aspx

            – Kiquenet
            Oct 5 '10 at 18:33











          • +1 for the link to the great 'simple shell context menu' project.

            – Danyal Aytekin
            Jul 15 '11 at 14:08











          • Still useful, thanks Mark

            – Luke Wyatt
            Aug 13 '12 at 14:09






          • 3





            is there any updated version for win 10?

            – souvickcse
            Aug 30 '16 at 22:20


















          3














          It is, incidentally, not supported to use .NET for shell extensions, due to the current inability to host multiple runtime versions in the same process (.NET 4 will lift this restriction).



          Consider the case where you have two shell extensions; one for .NET 3.5, one for .NET 1. Which runtime will get loaded into your process? Well, it's more or less random--it depends which shell extension gets loaded first. Sometimes it might be the 2.0 runtime, sometimes it might be the 1.1 runtime.



          This is also an issue if a .NET program creates common file dialogs; your shell extension may or may not load, and may or may not run with the correct runtime version.



          As such, if you go down the Shell extension route you should use native C++/COM/Win32.






          share|improve this answer

























          • The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

            – logicnp
            Mar 2 '10 at 7:38













          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f1838856%2fintegrating-into-windows-explorer-context-menu%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          25














          You will need to access the registry and add a key under root\File\shell or rootFolder\shell, depending on which items you want the menu item visible on.



          Try this article at CodeProject, it's quite useful.



          Edit: There's another article here which may be of help.






          share|improve this answer



























          • codeproject.com/KB/cs/dateparser.aspx

            – Kiquenet
            Oct 5 '10 at 18:33











          • +1 for the link to the great 'simple shell context menu' project.

            – Danyal Aytekin
            Jul 15 '11 at 14:08











          • Still useful, thanks Mark

            – Luke Wyatt
            Aug 13 '12 at 14:09






          • 3





            is there any updated version for win 10?

            – souvickcse
            Aug 30 '16 at 22:20















          25














          You will need to access the registry and add a key under root\File\shell or rootFolder\shell, depending on which items you want the menu item visible on.



          Try this article at CodeProject, it's quite useful.



          Edit: There's another article here which may be of help.






          share|improve this answer



























          • codeproject.com/KB/cs/dateparser.aspx

            – Kiquenet
            Oct 5 '10 at 18:33











          • +1 for the link to the great 'simple shell context menu' project.

            – Danyal Aytekin
            Jul 15 '11 at 14:08











          • Still useful, thanks Mark

            – Luke Wyatt
            Aug 13 '12 at 14:09






          • 3





            is there any updated version for win 10?

            – souvickcse
            Aug 30 '16 at 22:20













          25












          25








          25







          You will need to access the registry and add a key under root\File\shell or rootFolder\shell, depending on which items you want the menu item visible on.



          Try this article at CodeProject, it's quite useful.



          Edit: There's another article here which may be of help.






          share|improve this answer















          You will need to access the registry and add a key under root\File\shell or rootFolder\shell, depending on which items you want the menu item visible on.



          Try this article at CodeProject, it's quite useful.



          Edit: There's another article here which may be of help.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Jan 31 '12 at 6:24

























          answered Dec 3 '09 at 9:57









          Mark BellMark Bell

          21.9k20 gold badges99 silver badges128 bronze badges




          21.9k20 gold badges99 silver badges128 bronze badges















          • codeproject.com/KB/cs/dateparser.aspx

            – Kiquenet
            Oct 5 '10 at 18:33











          • +1 for the link to the great 'simple shell context menu' project.

            – Danyal Aytekin
            Jul 15 '11 at 14:08











          • Still useful, thanks Mark

            – Luke Wyatt
            Aug 13 '12 at 14:09






          • 3





            is there any updated version for win 10?

            – souvickcse
            Aug 30 '16 at 22:20

















          • codeproject.com/KB/cs/dateparser.aspx

            – Kiquenet
            Oct 5 '10 at 18:33











          • +1 for the link to the great 'simple shell context menu' project.

            – Danyal Aytekin
            Jul 15 '11 at 14:08











          • Still useful, thanks Mark

            – Luke Wyatt
            Aug 13 '12 at 14:09






          • 3





            is there any updated version for win 10?

            – souvickcse
            Aug 30 '16 at 22:20
















          codeproject.com/KB/cs/dateparser.aspx

          – Kiquenet
          Oct 5 '10 at 18:33





          codeproject.com/KB/cs/dateparser.aspx

          – Kiquenet
          Oct 5 '10 at 18:33













          +1 for the link to the great 'simple shell context menu' project.

          – Danyal Aytekin
          Jul 15 '11 at 14:08





          +1 for the link to the great 'simple shell context menu' project.

          – Danyal Aytekin
          Jul 15 '11 at 14:08













          Still useful, thanks Mark

          – Luke Wyatt
          Aug 13 '12 at 14:09





          Still useful, thanks Mark

          – Luke Wyatt
          Aug 13 '12 at 14:09




          3




          3





          is there any updated version for win 10?

          – souvickcse
          Aug 30 '16 at 22:20





          is there any updated version for win 10?

          – souvickcse
          Aug 30 '16 at 22:20













          3














          It is, incidentally, not supported to use .NET for shell extensions, due to the current inability to host multiple runtime versions in the same process (.NET 4 will lift this restriction).



          Consider the case where you have two shell extensions; one for .NET 3.5, one for .NET 1. Which runtime will get loaded into your process? Well, it's more or less random--it depends which shell extension gets loaded first. Sometimes it might be the 2.0 runtime, sometimes it might be the 1.1 runtime.



          This is also an issue if a .NET program creates common file dialogs; your shell extension may or may not load, and may or may not run with the correct runtime version.



          As such, if you go down the Shell extension route you should use native C++/COM/Win32.






          share|improve this answer

























          • The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

            – logicnp
            Mar 2 '10 at 7:38















          3














          It is, incidentally, not supported to use .NET for shell extensions, due to the current inability to host multiple runtime versions in the same process (.NET 4 will lift this restriction).



          Consider the case where you have two shell extensions; one for .NET 3.5, one for .NET 1. Which runtime will get loaded into your process? Well, it's more or less random--it depends which shell extension gets loaded first. Sometimes it might be the 2.0 runtime, sometimes it might be the 1.1 runtime.



          This is also an issue if a .NET program creates common file dialogs; your shell extension may or may not load, and may or may not run with the correct runtime version.



          As such, if you go down the Shell extension route you should use native C++/COM/Win32.






          share|improve this answer

























          • The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

            – logicnp
            Mar 2 '10 at 7:38













          3












          3








          3







          It is, incidentally, not supported to use .NET for shell extensions, due to the current inability to host multiple runtime versions in the same process (.NET 4 will lift this restriction).



          Consider the case where you have two shell extensions; one for .NET 3.5, one for .NET 1. Which runtime will get loaded into your process? Well, it's more or less random--it depends which shell extension gets loaded first. Sometimes it might be the 2.0 runtime, sometimes it might be the 1.1 runtime.



          This is also an issue if a .NET program creates common file dialogs; your shell extension may or may not load, and may or may not run with the correct runtime version.



          As such, if you go down the Shell extension route you should use native C++/COM/Win32.






          share|improve this answer













          It is, incidentally, not supported to use .NET for shell extensions, due to the current inability to host multiple runtime versions in the same process (.NET 4 will lift this restriction).



          Consider the case where you have two shell extensions; one for .NET 3.5, one for .NET 1. Which runtime will get loaded into your process? Well, it's more or less random--it depends which shell extension gets loaded first. Sometimes it might be the 2.0 runtime, sometimes it might be the 1.1 runtime.



          This is also an issue if a .NET program creates common file dialogs; your shell extension may or may not load, and may or may not run with the correct runtime version.



          As such, if you go down the Shell extension route you should use native C++/COM/Win32.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 3 '09 at 10:05









          DrPizzaDrPizza

          15.3k6 gold badges35 silver badges52 bronze badges




          15.3k6 gold badges35 silver badges52 bronze badges















          • The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

            – logicnp
            Mar 2 '10 at 7:38

















          • The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

            – logicnp
            Mar 2 '10 at 7:38
















          The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

          – logicnp
          Mar 2 '10 at 7:38





          The latest .Net 4.0 runtime supports in process side-by-side loading of the .Net 4.0 runtime (and ALL future runtimes) with earlier .Net runtimes. See following excerpt from msdn.microsoft.com/en-us/magazine/ee819091.aspx "With the ability to have multiple runtimes in process with any other runtime, we can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine."

          – logicnp
          Mar 2 '10 at 7:38

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f1838856%2fintegrating-into-windows-explorer-context-menu%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

          Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

          Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript