How to eject the drive (USB-Stick) instead of the medium?

As far as I know Go EJECT only ejects the media instead of the drive. Thus it isn't possible to safely remove an USB-Stick by a shortcut at all. I have used DriveRemove.exe (bound to a shortcut) for years know but the feedback isn't that well and occassionally it totally fails.

I'm wondering if it makes sense to add an argument to Go EJECT to let DOpus eject the drive as well. I guess that there are many users out there, who would be happy to unmount an USB-Stick within DOpus (by shortcut) without the need to start an external program.

PS: Is it possible to trigger the safe removal feature of windows (on drive level) by some JScript code?

Maybe this free program could be interesting for you:

The tools has command line capabilities, so you could make a button or shortcut in Opus.

This is a similar tool as DriveRemove.exe. It's common to all external (console based) tools for unmounting a drive that the feedback doesn't work really well. Sometimes it took up to 10 seconds before returning an error code, sometimes it shows a message, sometimes not, sometimes the message is shown minutes after but the operation failed quickly, and so on ...

Thus I would really appreciate to have this functionality as build-in command providing a robust operation in well known DOpus quality. Particurlarly because it looks like a good extension to the already existing Go EJECT command (which feels a little bit "incomplete" for the moment).

Ejecting the media should be sufficient for safe removal, unless we are talking about devices with multiple partitions or card readers (in which case you might need to eject all of the active drives, depending on how they are mounted).

I have had a lot of problems (corrupted NTFS partitions etc.) long time ago when only ejecting the USB-Stick as media (by DOpus), therefore I switched over to RemoveMedia.exe to eject the drive instead. This helped a lot (less errors) but since it is an external tool the bad integration sometimes still led to user handling errors.

Currently we have many Sandforce based USB-Sticks (performs like a SSD) in use and these have large chipset based memory for write caching (even if the volume is mounted for fast removal). Without safely unmounting the drive before removal these kind of USB-Sticks love to eat your data. Same applies to most of our SSDs installed in 2.5" external cases connected over USB3. ... index.html

Thus it would be nice to know that you have something like a Go EJECT=drive on the wishlist.

The actual ejection is handled by Windows; Opus just does the equivalent of right-clicking the drive in Explorer and choosing Eject.

That should be enough to let you remove the drive (otherwise there isn't much point in that menu item existing for that drive at all), so if it isn't it may be a driver issue.

I don't know that we would be able to make something that did things better than the various tools dedicated to doing it, either.

I have a short look to these drive removal tools and it works very well. How can I play an error sound depending on the result code of the ejection tool?


RemoveDrive.exe {sourcepath$|\} -b -e

Play error.wav QUIET // should only be executed on error

As far as I remember you can't but there is somethink like an @iferr modifier on the whishlist that will do the trick. Until then you have to go the scripting way.