Russian Qt Forum
Октябрь 04, 2024, 02:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Открытие основного окна при попытке повторно запустить приложение  (Прочитано 2271 раз)
ctin
Гость
« : Декабрь 26, 2012, 13:07 »

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

main.cpp
Код:
...
    QLabel label("text");
    QSharedMemory sharedMemory("SonetTest");
    const int size = sizeof(void*);
    if(!sharedMemory.create(size, QSharedMemory::ReadWrite))
        {
            sharedMemory.lock();
            SetForegroundWindow (*(HWND*)sharedMemory.constData());//вынимаем указатель как содержимое указателя на constData
            //qWarning() << "has attached id" << *(HWND*)sharedMemory.constData();
            sharedMemory.unlock();
            sharedMemory.detach();
            return 0;
        }
        else
        {
            label.show();
            sharedMemory.lock();
            *((void**)sharedMemory.data()) = label.winId();//засовываем указатель в содержимое data
            //qWarning() << "now id attached" << (*(HWND*)sharedMemory.constData());
            sharedMemory.unlock();
        }
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 20.