This is a small utility that I wrote after listening to the complaints of the IT department where I work. One guy that they have to deal with is always doing stupid things and then calling up to blame them for the results. I thought I could help out a little with one of the common problems, so I wrote this program.
There is a person in the Sales department here, who shall remain nameless, that has absolutely no idea how to use a computer. Scratch that, everybody in Sales has absolutely no idea how to use a computer. However there is one person who rises above them all in his incessant complaining. He will click on the Outlook icon, wait two seconds, and decide it isn't starting, and proceed to click on it ten to fifteen more times. At that point, it will never start, and when he calls up to complain about how the IT guys broke Outlook, someone will go over and kill the extra processes in task manager. Sometimes he'll loose the send button, also, but he generally finds it again partway through his call to the sysadmin. I don't have a solution to that problem, but maybe someone can thwack him with a cluebat.
So here's my solution: onlyonce. This program will allow only one instance each of a specified list of programs, and it will display a friendly message box if it prevents another instance from starting. (I really wanted to make it an unfriendly message box, but I have left that up to you.) This is a Windows-only program, and I am only providing the C source code; you will need to compile it yourself. There are instructions at the top of the file for compilation and installation.
OnceOnly Source
MinGW Compiler to build onceonly.exe