Под виндой, чтобы не запускать более одного экземпляра приложения нужно сделать FindWindow и если такое окно есть, то делаем его активным, а новый экземпляр не запускаем.
Подобное можно сделать на Qt?
глянь тут:
http://qtfaq.ru/index.php?option=com_content&task=view&id=10&Itemid=26
Спасибо, оперативно помогли.
У меня есть модуль для винды написанный на python-е.
Могу выложить, если кому надо. :-)
я в Борланде делал через именованый мьютекс:
const char *NamedMutex = "ESPA Demon"; // именованный mutex
HANDLE CheckInstance( const char *Name)
{
HANDLE Mutex = CreateMutex(NULL,true,Name);
int r = GetLastError();
if (r) return 0;
return Mutex;
}
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HANDLE Mutex = CheckInstance(NamedMutex);
if (!Mutex)
{
ShowMessage(" Приложение уже запущено! ");
ReleaseMutex(Mutex);
return 1;
}
try
{
Application->Initialize();
Application->Title = "ESPA Demon";
Application->CreateForm(__classid(TFrmMain), &FrmMain);
Application->CreateForm(__classid(TFrmModBus), &FrmModBus);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
Класс DSingleApplication может помочь.
http://qtfaq.ru/tiki-download_file.php?fileId=18
Mixolap, он у тебя через порты реализован, а их может брандмауэр банить, я вот еще вариант нашел через http://www.qtcentre.org/forum/p-instance-of-an-application-is-running-or-not-post939/postcount5.html
2 Litkevich Yuriy И причём тут экземпляр приложения?
По ссылке простейшая реализация синглетона для диалога, а приложений с такими диалогами можно наоткрывать пока память не закончиться. :-)
Но ведь Instance() применим и к QApplication, может быть можно через него отслеживать запущеное приложение?
Всем спасибо, пока вопрос отложен, за неимением подходящего результата =), жаль что QSingleApplication закрыт =(
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)