 <p>There are two ways to add items to the context menu. </p> <p><strong>Registry</strong></p> <p>This method is easy since it comes down to adding some registry keys. The downside is that you can't put any logic in it. You can read about it <a href="http://msdn.microsoft.com/en-us/library/bb776820%28VS.85%29.aspx" rel="nofollow noreferrer">here</a> and <a href="http://www.delphi3000.com/articles/article_4119.asp?SK=" rel="nofollow noreferrer">here</a> a simple example in Delphi. You get a bit more control if you are using DDE to execute the menu items. See <a href="http://cc.embarcadero.com/Item/17787" rel="nofollow noreferrer">here</a> for a Delphi example. If DDE doesn't solve your 'already running' problem you could try and have your applications communicate with each other trough some way of IPC.</p> <p><strong>Shell Extension</strong></p> <p>This method is a bit more work, but you can completely control the context menu from code. You would have to write a DLL, implement <a href="http://msdn.microsoft.com/en-us/library/bb776095%28VS.85%29.aspx" rel="nofollow noreferrer">IContextMenu</a> (or others) and register the dll with Windows Explorer. You can read about it <a href="http://msdn.microsoft.com/en-us/library/bb776881%28VS.85%29.aspx" rel="nofollow noreferrer">here</a>. You could also check out <a href="http://www.shellplus.com/examples/shortcut-menu-example.html" rel="nofollow noreferrer">Shell+</a>.</p>