A question from a new Delphi User

Hello.  I'm new to using Delphi so I was hoping there was someone out
there who could help me with something.  I have been using Visual
Basic for a couple years and I really liked it but I heard a lot about
Delphi so I went and forked out the money and bought it.  I have found
that although it takes a little getting used to it isn't really any
harder than VB.  My problem is I have a program I wrote where I work
that is basically a shell program that runs the test programs for our
manufacturing.  When the company switched from DOS to windows the
people on the line got confused, they don't seem to understand the
fact that more than one program can be running at once so they ended
up running duplicates from the menu until they loaded down the
machine. The Duplicates are DOS programs to make matters worse.  So
what I did was add a statement to try to use the VB command to
AppActivate the programs window and if it could it would swap back to
the windows of the running program when they told it to run it, if
that failed it could assume the program was not already running and
then it would run it.  I cannot find a command as such in Delphi.  The
closest thing I have found was the SetActiveWindow API call and I am
not sire thats what I want and if it is I have to do a few backflips
just to get the windows handle for that to work.  I have to believe I
am missing something.  If anyone knows of an easier way or even the
exact proper way to use the API calls (not a cut and paste of the
manual I have that <G>) I would much appreciate it.  Hell I'd settle
for any other way to prevent duplicates of the same application from
being run as well.  I don't frequent the newsgroups much so if you
could be so kind as to copy it to my e-mail address as well I would
much appreciate it.  
Thanks in advance.