//--------------------------------------------------------------------------- #include #pragma hdrstop USEFORM("W:\Tex3DWE\TpwTest\Config\Config_F.cpp", ConfigForm); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { const char *mutexname[5] = { "TexpiaDesignCAD(Textile)", "TexpiaDesignCAD(Weave)", "TexpiaDesignCAD(Pile)", "TexpiaDesignCAD(Knit)", "TexpiaDesignCAD(Configuration)" }; AnsiString str[4]; HANDLE hMutex = NULL, hComp = NULL; str[0] = "Textile"; str[1] = "Weave"; str[2] = "Knit"; str[3] = "Pile"; try { hMutex = OpenMutex(0, false, mutexname[4]); if (hMutex==NULL) { hMutex = CreateMutex(NULL, true, mutexname[4]); for (int i=0; i<4; i++) { hComp = OpenMutex(0, false, mutexname[i]); if (hComp) { CloseHandle(hComp); ShowMessage("After Close " + str[i] + " Application, try again!"); return 0; } } } else { CloseHandle(hMutex); ShowMessage("Application already running."); return 0; } Application->Initialize(); Application->Title = "Tex3D Design CAD System Configuration"; Application->CreateForm(__classid(TConfigForm), &ConfigForm); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } ReleaseMutex(hMutex); CloseHandle(hMutex); return 0; } //---------------------------------------------------------------------------