怎么识别连编后的程序已经运行(驻留内存),而避免用户重复打开

如何识别连编后的程序已经运行(驻留内存),而避免用户重复打开
我的系统连编后直接将整个文件夹拷贝给用户使用,
发现用户已经运行后不小心或者忘记,因此又运行一遍,
同一个系统不在同一个路径还行,否则重复打开往往造成错误的发生。

请问老师们,如何判别系统已经驻留内存而不能重复运行呢?
谢谢!

------解决方案--------------------
参见:http://topic.****.net/u/20080901/23/e0df3500-3424-4a2a-b430-555612fdc011.html
------解决方案--------------------
如果变量和字段同名,Visual FoxPro 总是将优先给予字段名。可以使用 m. 或 m-> 加变量名来引用该变量,如下面示例那样:
 
? m.cFname && 打印变量 cFname 中的值
? m->cFname && 打印变量 cFname 中的值
? cFname && 打印字段 cFname 内容
 

------解决方案--------------------
SQL code
Declare Long CreateMutex In "kernel32" Long, Long, String
Declare Long CloseHandle In "kernel32" Long
Declare Long GetLastError In "kernel32"
Public hwndMainPro
nLastError = GetLastError()
hwndMainPro = CreateMutex(0, 0, "[这里输入您互斥体的唯一标识名字]")
nLastError = GetLastError()
If hwndMainPro=0 Or nLastError<>0        &&    表明已经创建过
    =CloseHandle(hwndMainPro)
    Clear Dlls
    Cancel
    && 退出系统
    Return
EndIf
&& 继续运行(只在第一次启动时继续,重复启动时均会执行上面的 IF 。。。ENDIF 段内代码)