Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить запущена ли копия программы, Как? 
:(
    Опции темы
dandy77
Дата 17.6.2009, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



У меня есть небольшой скрин савер на MFC. Дело в том, что скрин савер не создает окно. То есть у меня весь код скрин савера находиться в функции InitInstance(). Может вы не поверите- но такое бывает. Так вот. Мне надо определить, была ли запущена программа скрин савера до этого ранее. Естественно, было бы окно, можна воспользоваться функцией FindWindow() и закрыть его, если найдено предыдущая копия окна. Но окна нету. И как мне теперь определить, запущен ли он был ранее? Кто знает? Переписать программу на WinAPI? Там есть hPrevInstance.

Это сообщение отредактировал(а) dandy77 - 17.6.2009, 03:13
PM MAIL   Вверх
Andrey44
Дата 17.6.2009, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Цитата(dandy77 @  17.6.2009,  03:13 Найти цитируемый пост)
Может вы не поверите- но такое бывает.

Ну конечно мы не поверим!!! smile Как такое может быть!!! smile 
По-делу:
Код

if (CreateMutex(NULL, FALSE, _T("MYMUTEXWITHNAME_DANDY77")) == 0 || GetLastError() == ERROR_ALREADY_EXISTS)
    {
        //Program is already running!
        MessageBox(0, _T("You can perform only one instance of  your program!"),
            _T("Screen saver without a window!!!"),
            MB_OK | MB_ICONWARNING);
        return FALSE;
    }

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

Это сообщение отредактировал(а) Andrey44 - 17.6.2009, 07:20


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Andrey44
Дата 17.6.2009, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



dandy77, и кстати, это обсуждалось уже не один раз.
Пользуйтесь поиском.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
dandy77
Дата 17.6.2009, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Спасибо понял суть, воспользуюсь советом. Про мутиксы знаю, но никогда не пользовался. Теперь будет возможность изучть их. А насчет "Вы не поверите..." просто я раз этот же скрин савер делал, а у меня же в нем окна не было, так я спрашивал тут на форме как мне с клавиатуры ввод контролировать, если окна нету. Никто толком ничего не сказал, все удивлялись как это окна нету, и я ввод с клавиатуры пытаюсь контролировать. А потом я сам додул что надо использовать GetAsyncKeyState() и все получилось. Так моя та тема и осталась без толкового ответа, пока я сам не допер про GetAsyncKeyState(). 

Это сообщение отредактировал(а) dandy77 - 17.6.2009, 18:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0414 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.