USB Disk Ejector V1.2

USB Disk Ejector. Version 1.2 ideas and planning

Get Started. It's Free
or sign up with your email address
Rocket clouds
USB Disk Ejector V1.2 by Mind Map: USB Disk Ejector V1.2

1. Functionality

1.1. Expand program scope?

1.1.1. Eject firewire devices too?

1.2. Fixes/Changes

1.2.1. Win 2K support

1.2.1.1. Implemented and working.

1.2.2. Win 98/ME support

1.2.2.1. VERY unlikely. Would mean new eject procedure and not being able to use unicode for multiple language support

1.2.3. Rewrite command line options dialog and explanation

1.2.4. /ShowEject doesnt work under Vista64

1.2.4.1. Problem was /ShowEject not working with /Removethis - fixed

1.2.5. Command Line: Return error code when eject fails and running from command line For use in scripting

1.2.5.1. Only return when succeeded or failed

1.2.6. Multiple partitions - show only 1? hide some or merge into 1 entry in list.

1.3. New features

1.3.1. Hotkey support

1.3.2. When eject fails Find what program/process is using the drive and show user/offer to kill it

1.3.2.1. Cant find sample code or an API. Sysinternals seems to use an undocumented Win API to do it?

1.3.2.1.1. Perhaps use unlocker if its present? Call it on the command line to force all open handles on the drive to free

1.3.3. Vista - before eject. Find and close any explorer windows related to the drive. Normally if any are open then the eject fails (unlike XP where they are automatically closed)

1.3.4. Reminder on shutdown/restart/logoff: Prompt if any usb drives still plugged in. Handy for public pc's where you can forget your pen drive. Halt the shutdown/restart for 5 secs while a notification is displayed.

1.3.5. Add right click eject to system tray icon

1.3.5.1. What's the point of just duplicating a feature of the windows eject applet though?

1.3.6. Multiple language support

1.3.6.1. Definitely needs doing and should be relatively simple

1.3.7. When eject fails - keep trying for x seconds. Give user time to close anything that might be using the device

1.3.7.1. Use configurable option? Its currently fixed at 2 seconds

1.3.7.1.1. Or separate command? 'Eject and wait'

1.3.8. Option - to exit after successfully ejecting a device - in GUI mode

1.3.9. Option -make exit cross minimise to tray

1.3.10. Option - Preserve the size/location of the app window when its next loaded

1.3.11. Option - to minimise after successfully removing a device

1.3.12. Option - to start program minimised

1.3.13. Need some (small) notification of successful eject. Make silent mode an option - normally just have a quick popup in system try that appears for 2 seconds

1.3.13.1. Or some sort of 'ding/beep' audio notification?

1.3.14. Add an 'about' dialog, or at least include version string somewhere noticable

1.3.15. Rescan feature - to find devices that have been ejected but not physically removed

1.3.16. Dont use win balloon tip notifications instead use custom notifications in system tray

1.3.17. Hide certain devices that the user chooses so they cant be easily ejected?

2. Visual

2.1. User modifiable icons?

2.1.1. Not in a portable version. Size/portability/complexity issues

2.2. Icons for different devices? Beyond the disk/ipod ones already included.

2.2.1. Not in portable version. Complexity/portability issues

2.3. Show more info about each disk

2.3.1. Show volume labels as well as device names + drive letter

3. Issues and Problems

3.1. How to store all the new settings?

3.1.1. Ini File?

3.1.1.1. What about the command line?

3.1.1.1.1. Ignore ini/xml settings when using command line

3.1.1.1.2. Make sure there are no GUI settings left with command line options. Move them all to options stored in ini

3.1.1.1.3. Keep GUI/Command line completely separate. Program is GUI but can be used as command line.

3.1.2. XML File?

3.2. Bloat

3.2.1. What are all the new features going to do to the file size/memory footprint?

3.3. Licence

3.3.1. What licence do I release it under?

3.4. Some of the requested features require admin rights/elevation

3.4.1. The app is written NOT to require admin privileges. Vista elevation on demand seem to require writing/installing a com object. And then what about XP?

3.5. Its primarily a portable app.

3.5.1. Some of the requested features aren't practical for a portable app

3.5.1.1. Split into portable and 'installed' version?

3.5.1.1.1. Maintenance problems

3.5.1.1.2. Confusing for users?

3.5.1.1.3. Feature differences. People will start requesting features from the 'full' version in the portable version anyway.

4. Todo's

4.1. Rewrite instructions/readme

4.2. Completely separate page on site for disk ejector?

4.3. Refactor/restructure code

4.4. Check that Dave can still do the Delphi 2007 compile

4.5. Instructions/page - on how to use it with Pstart/Portable Apps Launcher

4.6. Instructions/page - on how to use it in a bat file/shortcut

4.7. Somehow make it clear that its NOT installed. Keep getting emails asking how to uninstall it and that its not listed in add/remove

4.8. Check - does disk use need to be enabled on an iPod before it shows in disk ejector/windows eject applet

4.9. Add an explanation somewhere about why you should safely remove rather than physically removing a device at will. Will stop the demanding 'Please explain why I need this!' emails I keep getting ¬¬

4.10. Need translators for the different language versions

4.11. Restructure code to allow easy translation