|
发表于 2010-6-22 00:09:39
|
显示全部楼层
贵州省六盘水市
我一班都-----通过创建互斥量来判断:
不知道和您老胃口不?
大概就这些了
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES( "Project1.res ");
USEFORM( "Unit1.cpp ", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application-> Initialize();
HANDLE hnd = CreateMutex(NULL,TRUE, "No Previous Instance! ");
if (NULL == hnd)
{
MessageBox(NULL, "创建Mutex失败! ", "NoPrev ",MB_OK ¦MB_SYSTEMMODAL);
return 0;
}
if (GetLastError()==ERROR_ALREADY_EXISTS)
{
::MessageBox(NULL, "已经运行了一个实例! ",Application-> Title.c_str(),MB_OK ¦MB_SYSTEMMODAL);
ReleaseMutex(hnd);
return 0;
}
Application-> CreateForm(__classid(TForm1), &Form1);
Application-> Run();
}
catch (Exception &exception)
{
Application-> ShowException(&exception);
}
return 0;
}
//---------------------------------------------------------------------------
二、通过查找系统原子表的方法来判断:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES( "Project1.res ");
USEFORM( "Unit1.cpp ", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
const char *Atom = "SingleApp ";
try
{
if (GlobalFindAtom(Atom) != 0)//在系统原子表中找原子
{
::MessageBox(NULL, "已经运行了一个实例! ",Application-> Title.c_str(),MB_OK ¦MB_SYSTEMMODAL);
return 0;
}
GlobalAddAtom(Atom);//增加原子
Application-> Initialize();
Application-> CreateForm(__classid(TForm1), &Form1);
Application-> Run();
}
catch (Exception &exception)
{
Application-> ShowException(&exception);
}
GlobalDeleteAtom(GlobalFindAtom(Atom));//删除原子
return 0;
}
//---------------------------------------------------------------------------
三、通过FindWindow函数来判断:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES( "Project1.res ");
USEFORM( "Unit1.cpp ", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
HWND hdc = FindWindow( "TForm1 ", "Form1 ");
if (NULL != hdc)
{
::MessageBox(NULL, "已经运行了一个实例! ",Application-> Title.c_str(),MB_OK ¦MB_SYSTEMMODAL);
return 0;
}
Application-> Initialize();
Application-> CreateForm(__classid(TForm1), &Form1);
Application-> Run();
}
catch (Exception &exception)
{
Application-> ShowException(&exception);
}
return 0;
}
//--------------------------------------------------------------------------- |
评分
-
查看全部评分
|