Here's some more smaller things you might want to look into:
- Pressing "Update" but then closing DD before the update check process was finished causes the application executable to remain with the name "Degath's Ducker.exe.old" - one has to manually rename it in order to make it work again (might be a problem for less advanced users)
- Pressing "Update" and then "Settings" in the main menu causes an unhandled exception - the update check still finishes but then it is impossible to click something either the main window, the message box or the exception dialog, the program can only be closed with the task manager
- If I set a default template there doesn't seem to be a direct way to revert it to not having a default template - deleting that template and then saving it again is a workaround but there should be a simpler way (maybe just provide an empty item in the combo box to be selected)
- Is the log that is shown in the settings saved anywhere? From the settings window it's not possible to copy-paste (no context menu on right click and Ctrl+C or Ctrl+Ins do nothing) or save the contents to a file. If you ask me to send you the log my only option would be a screenshot if I don't want to manually transcribe everything
- Speaking of the log, here it shows a message that it can't register for the process exit event of ts3client_win64.exe - which is the TeamSpeak client in 64 bit version - because of "Access Denied". As one would expect running DD as admin solves that, but that's not my point here. My point is that after I closed the TeamSpeak client the log fills with a "No Process with ID 1234 is being executed" error messages every 2 seconds (apparently caused by your title check). Instead of spamming those messages, why not use that error to have DD recognize the fact that a process has exited? This would compensate for the problem that the exit event can't be received for that process.
- There should be separate menu entries for "Save" and "Save As". When I want to overwrite my current template I always have to type the full name again in the "Save..." dialog box, which is annoying especially when my template name is pretty long. Alternatively, make the current "Save..." dialog box have the name of the currently loaded template preset in the text box.
- Maybe it would be a good idea to also include the current template's name in the DD window title. E.g. "Degath's Ducker - My template".
- And if unsaved changes were made maybe indicate it there too by using an asterisk like "Degath's Ducker - My template*".
- Oh yeah, and while at it, ask the user whether he wants to save the template if there are unsaved changes while he is trying to exit the application ;-)
- I think it's not ideal that when template contains target A and target B, but when target B is a program currently not running it is not shown on the target list at all. Under normal circumstances this might not produce any issues. But it could make error tracking really hard if that target is actually running but is not detected by DD for some reason. I will never know whether it just got lost from my template, is not shown because of a display bug or is not shown because the process is not detected by DD.
- Also I think it's not a good design when I have to run that target program first to be able to delete it from my template. What if I already uninstalled it but forgot to remove it from my template? I would have to create a new template leaving this target out if I want to clean this up. If I don't, who knows what other problems it creates when DD is constantly looking for an application that will never be there again? Especially if I really forgot about this when uninstalling it, I might never find out that this target is still in the template but just invisible because it is not running right now.
- Solution suggestion 1: always show all targets, but indicate if they are not active/running right now, e.g. by showing it grayed or displaying an extra "disabled" icon.
- Solution suggestion 2: leave it as it is but at the top or bottom of the target list provide a "[X] Show inactive targets" checkbox that can make them visible. Should probably be combined with suggestion 1.
- Would be good to have DD remember its window size related to the current template if saved. Alternatively, just remember the window size regardless of the loaded template, so I can at least choose a window size that fit all my templates nicely and don't have to resize the window after every new start of the program.
Wow! Excellent points and a lot of them. I shall start working on getting these done. Going to take me some time but thank you for pointing these out.