Edanmo Shell Extension: How to Install it?

P

Pieter

Hi,

I'm trying to use the Edanmo Shell Extension Library
(http://www.mvps.org/emorcillo/en/code/shell/shellextensions.shtml) to make
a Context Menu in the Windows Explorer with VB.NET 2005. It seems realy easy
to use this library:
- I inherited from ContextMenuHandlerBase
- I made the assembly COM-visible
- Registered for COM interop

But I don't always get what I want:
- When I debug it, it nicely opens a Windows Explorer, and I can use my
Shell Extension in that window. But when I debug again, I can't because the
files in the bin-directory are write enabled!
- I added a Setup project to it, installed it, and soemtimes it works,
sometimes it doesn't. When I des-installed it, and isntalled it again, it
didn't work anymore...

I searched for it the whole day yesterday, and it really drives me crazy :-/
What am I missing? Should I add something to the isntaller? Custom Actions
after isntalling? Add and remove some registry-keys myself?

Any help would be really apreciated!!!

Thanks a lot in advance,

Pieter
 
M

Mattias Sjögren

I'm trying to use the Edanmo Shell Extension Library
(http://www.mvps.org/emorcillo/en/code/shell/shellextensions.shtml) to make
a Context Menu in the Windows Explorer with VB.NET 2005.

Before you spend more time on this, you should think twice if you
really want to do this in VB.NET. There are good reasons not to write
shell extensions in managed code. See

http://blogs.msdn.com/junfeng/archive/2005/11/18/494572.aspx

- When I debug it, it nicely opens a Windows Explorer, and I can use my
Shell Extension in that window. But when I debug again, I can't because the
files in the bin-directory are write enabled!

You should configure Explorer to launce each window in a separate
process so you can simply close the window to release any loaded
libraries.


Mattias
 
P

Pieter

Hi,

Thanks for the answer.
It's alreaddy the second time that you warn me not to use VB.NET for a shell
extension. This time with a reason why I shouldn't do it.
I understand the problem, but what are the other options? 'm not a C++
expert, so actually, the only solution you give me is not developing a shell
extension...

Is there somewhere out there an easy (and free!) shell extension library
that can be easily adapted to my needs?
And can I call in my shell extension a .NET class library once the users
clicks the option without running the mentioned risk?

Thanks,

Pieter
 
C

Cor Ligthert [MVP]

Pieter,

I am not sure of this, however Net is a from Win32 and WinFX independend OS
layer.
(Before the discussion starts, it uses parts of that, however know itself
what parts).

Using yourself expliciet parts of one of those which does maybe not exist in
a version, makes it in my idea less easy to move in future.

Just my thought,

Cor
 
J

Jim Barry

Pieter said:
I understand the problem, but what are the other options? 'm not a C++
expert, so actually, the only solution you give me is not developing
a shell extension...

I think you will have to learn some C++ or get somebody else to write it for you.
Is there somewhere out there an easy (and free!) shell extension
library that can be easily adapted to my needs?

I'm sure you will find some useful articles on CodeProject.
And can I call in my shell extension a .NET class library once the
users clicks the option without running the mentioned risk?

No, all you can really do is launch a new .NET application.
 
M

Mattias Sjögren

It's alreaddy the second time that you warn me not to use VB.NET for a shell
extension.

Sorry, didn't mean to nag about it. It's just a recommendation I post
whenever I see people attempting this, hopefully to prevent them to
shoot themselves in the foot.

I think Jim answered your other questions.


Mattias
 
P

Pieter

No problems. Sorry myelf too, I was just getting a little bit frustrated not
finding any solutions, hehe.

Although, do you think that it could be a problem in my situation:
- only for inside the company
- only 2.0 .NET framework-applications
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top