|
View->Project Manager->Project1.exe밑에 Project1.cpp 파일을 열면 됩니다.
그리고 코드를 입력하면 됩니다.
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HANDLE Mutex;
try
{
const char ProgMutex[] = "MyProgram"; // 여기서 자기
// 프로그램 고유의 이름으로 설정합니다.
// 아무 이름이나 상관없습니다.
if((Mutex=OpenMutex(MUTEX_ALL_ACCESS, false, ProgMutex))==NULL)
Mutex = CreateMutex(NULL, true, ProgMutex);
else
return 0;
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
ReleaseMutex(Mutex);
return 0;
}
김명섭 님이 쓰신 글 :
: 아래와 같이 FormCreate할때 실행되도록 코드를 입력했는데요.
: 프로그램이 하나 실행중인데 exe파일을 클릭하면 또 실행됩니다.
:
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
:
: HANDLE mutex;
: try
: {
: const char ProgMutex[] = "Project1";
: // mutex = OpenMutex(0, false, mutexname);
: //mutex = OpenMutex(MUTEX_ALL_ACCESS,false,mutexname);
: if((mutex=OpenMutex(MUTEX_ALL_ACCESS, false, ProgMutex))==NULL)
: mutex = CreateMutex(NULL, true, ProgMutex);
: else
: return;
:
: //밑부분은 현재 있는 상태
: Application->Initialize();
: Application->CreateForm(__classid(TForm1),&Form1);
: Application->Run();
: }
: catch (Exception &exception)
: {
: Application->ShowException(&exception);
: }
: // 프로그램에 사용된 뮤텍스 해제
: ReleaseMutex(mutex);
: return;
: }
:
: 장성호 님이 쓰신 글 :
: : mutex = OpenMutex(MUTEX_ALL_ACCESS, false, mutexname);
: :
: : 이렇게 해보세요
: :
: : 그럼...
: :
: : 김명섭 님이 쓰신 글 :
: : : 아래와 같은 코드를 이용하여 프로그램을 한번만 실행시킬 수 있다고 하는데요~~
: : : 입력해서 exe파일을 만들어서 실행했지만 프로그램이 여러개 실행됩니다..
: : : (ShowMessage는 실행되지 않았습니다..)
: : : 혹시 아시는분 계시면 알려주시면 고맙겠습니다.
: : :
: : : WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT)
: : : {
: : : HANDLE mutex;
: : : try
: : : {
: : : const char mutexname[] = "MyProgram";
: : : mutex = OpenMutex(0, false, mutexname);
: : : if(mutex == NULL)
: : : {
: : : mutex = CreateMutex(NULL,true,mutexname);
: : : }
: : : else
: : : {
: : : ShowMessage("현재 프로그램이 가동중입니다...");
: : : return 0;
: : : }
: : : //밑부분은 현재 있는 상태
: : : Application->Initialize();
: : : Application->CreateForm(__classid(TForm1),&Form1);
: : : Application->Run();
: : : }
: : : catch (Exception &exception)
: : : {
: : : Application->ShowException(&exception);
: : : }
: : : // 프로그램에 사용된 뮤텍스 해제
: : : ReleaseMutex(mutex);
: : : return 0;
: : :
: : :
: : : }
|