crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Запуск одного экземпляра программы.
Гость_shakil_*
сообщение 10.12.2007, 18:22
Сообщение #1





Гости








    


Под виндой, чтобы не запускать более одного экземпляра приложения нужно сделать FindWindow и если такое окно есть, то делаем его активным, а новый экземпляр не запускаем.

Подобное можно сделать на Qt?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QCasper
  опции профиля:
сообщение 10.12.2007, 22:30
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 26.11.2007
Пользователь №: 24

Спасибо сказали: 2 раз(а)




Репутация:   1  


Цитата(shakil @ 10.12.2007, 18:22) *
Под виндой, чтобы не запускать более одного экземпляра приложения нужно сделать FindWindow и если такое окно есть, то делаем его активным, а новый экземпляр не запускаем.

Подобное можно сделать на Qt?


В Qt Solutions есть что-то типа QSingleApplication, если я ничего не путаю. А что мешает использовать тот же самый FindWindow?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Mixolap_*
сообщение 10.12.2007, 22:38
Сообщение #3





Гости








    


глянь тут:
http://qtfaq.ru/index.php?option=com_conte...0&Itemid=26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QCasper
  опции профиля:
сообщение 11.12.2007, 0:03
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 26.11.2007
Пользователь №: 24

Спасибо сказали: 2 раз(а)




Репутация:   1  


Цитата(Mixolap @ 10.12.2007, 22:38) *


Ну вот, даже для opensource есть :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_shakil_*
сообщение 11.12.2007, 8:42
Сообщение #5





Гости








    


Спасибо, оперативно помогли. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iluxa
  опции профиля:
сообщение 26.2.2008, 18:43
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 26.2.2008
Пользователь №: 107

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(QCasper @ 11.12.2007, 0:03) *
Цитата(Mixolap @ 10.12.2007, 22:38) *


Ну вот, даже для opensource есть :)

Уважаемые, не поделитесь ли классом =), ибо по ссылке ничего не найденно, т.к. сайт видимо реконструировали, и теперь там вообще подобного нет. Заранее Спасибо.

Сообщение отредактировал iluxa - 27.2.2008, 2:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 27.2.2008, 8:52
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


У меня есть модуль для винды написанный на python-е.
Могу выложить, если кому надо. :-)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.2.2008, 9:03
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


я в Борланде делал через именованый мьютекс:
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;
}


Где-то у кого-то, когда-то подсмотрел, может по аналогии и зделать в Qt'ях
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Mixolap
  опции профиля:
сообщение 27.2.2008, 9:13
Сообщение #9


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 13.12.2007
Пользователь №: 46

Спасибо сказали: 0 раз(а)




Репутация:   0  


Класс DSingleApplication может помочь.
скачать с qtfaq.ru
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.2.2008, 9:38
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Mixolap, он у тебя через порты реализован, а их может брандмауэр банить, я вот еще вариант нашел через Instance()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 18:20