Hi Guys.

First of all is it possible to detect a file copying/moving within the system, I'm sure this is done in lower languages like C++ but I've tried searching but I don't seem to find not even en example, maybe it because I don't know how it correctly called. The copying will be occuring outside my application, I want something like hooking if thats the correct term.

Also the most importent part is how can I detect file drag and drop. Let me clear this out I don't mean to allow drag and drop within VB.NET app(Form) but want to know or detect if a user is dragging a file within the explorer. Eg. A user opens "D:/My Files/" and drag and drop file(s) from this directory to another directory let's say he droped it at "C:/New Copy/" directory, But I don't want to hard code the source and destinations they must be received dynamically if that the right term to use or should I say the paths must be received through Shell or OS.

The technique I want to use is the same as that used by Windows File Copy which when you drag and drop a file this application starts and gets the source and destination paths and begin copying your files. How can I do such a thing VB.NET, C#, or C++ But I think lower IO is good as I want to work much close to or whith the OS to receive such events and then take over.

Hope the question is clear to understand and that someone have some solution, sample, source, documents, links.

Thanks Pritaeas, But I'm not sure if this will raise an even as the user is attempting to copy/move the file, also It seems as if it doesn't support removable media which is what I want to also achieve. Maybe I could understand on how to ask this question if I can know what this type of process is called, the good example is TeraCopy, and xcopy applications, They detect the request of file copy/remove and they then do the required task, I think they use some sort of API/Shell intergration so How can I do the same, the core features I want is also when a user cut and paste, drag and drop. I want to make the file copier like TeraCopy, xcopy,etc. That will be the core file copier in my computer and it will receive paths dynamically.

That exactly what I'm looking for, but it seems as if it is not recommended to use it with vb.net, only c++. But I think it would be nice to have it in vb.net because its the languege I'm used to it.

It should be possible to write a wrapper assembly in C++/C# and use that in VB.NET. I doubt you are the first one looking for it. Check CodeProject/GitHub or similar sites.

The article starter has earned a lot of community kudos, and such articles offer a bounty for quality replies.