|
98 에서는 이렇게 하면 되는데...XP 에서는 프로그램 2개 실행하면...못 잡아내는데....
왜 그렇죠.
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HANDLE mutex;
try
{
const char mutexname[] = "Program 1";
mutex = OpenMutex(0, false, mutexname);
if(mutex == NULL) {
mutex = CreateMutex(NULL, true, mutexname);
}
else {
Application->MessageBox("Program 1 이미 실행중","확 인",MB_ICONERROR);
return 0;
}
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
Application->CreateForm(__classid(TForm3), &Form3);
Application->CreateForm(__classid(TForm4), &Form4);
Application->CreateForm(__classid(TForm5), &Form5);
Application->CreateForm(__classid(TForm6), &Form6);
Application->CreateForm(__classid(TForm7), &Form7);
Application->CreateForm(__classid(TForm8), &Form8);
Application->CreateForm(__classid(TForm9), &Form9);
Application->CreateForm(__classid(TForm10), &Form10);
Application->CreateForm(__classid(TForm11), &Form11);
Application->CreateForm(__classid(TForm12), &Form12);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
ReleaseMutex(mutex);
return 0;
}
|