Here's how I have done it:
1. Declare Global External Function
Function LONG FindWindowA(string lpClassName, string lpWindowName) library "user32.dll"
2.
In the application Open event use the following code:
IF FindWindowA(lsNull,"xxx"

> 0 THEN
MessageBox("Application Error!",&
"Application is Already Running!",&
StopSign!,OK!)
Halt
END IF
Where you see "xxx" in the FindWindow, substitute the EXACT contents of the title of your application's main window. This will be case-sensitive.
The result will be that when the app attempts to start, the message box will display and when OK is clicked the app instance that is trying to start will stop.
Of course, you may not find it appropriate to kill the app at application open. You may need to do some housekeeping first. This approach should work on all Win 32 bit systems.
Hope this helps.