I think what you are looking for here is a named mutex - these work like locks, but across process boundaries. There is a little bit of work involved in learning to set them up properly, but if you look at the MSDN documentation, I'm sure you'll get there. A good starting point would be
here[
^].