Автор
|
Тема: проверка на то, что приложение уже запущено
|
el dot f |
опубликован 18-11-2000 02:00 MSK
Я пытаюсь использовать FindWindow(...), но в нем надо указать имя зарегистрированного класса окна. так вот, как задать имя класса окна для dialog-based приложений? я пробовал через PreCreateWindow(), но CDialog его не наследует от CWnd. А в других методах - уже поздно, класс зарегистрирован. Подскажите, пожалуйста.
|
Eugene_Yavorsky1
|
опубликован 20-11-2000 15:50 MSK
1. А зачем задавать класс? Если достаточно уникальное... как это по-русски... Caption окна, задаешь класс=NULL - и нет проблем. 2. Если нужна ЖЕЛЕЗНАЯ уверенность - используй глобальные атомы или семафоры. |
el dot f
|
опубликован 20-11-2000 20:22 MSK
мне нужно искать по классу окна, т.к. caption меняется ;( использование семафоров дает ответ: есть приложение или его нет, а мне надо при нахождении запущенного моего приложения передать на него упраление. вот так-с. |
Eugene_Yavorsky1
|
опубликован 24-11-2000 20:50 MSK
Ну, тогда у меня 2 предложения: 1. Используя файл-маппинги, создаем именованный маппинг куска своп-файла первым экземпляром, и суем туда HWND его диалога. 2. А кто мешает зарегистрировать класс окна (и создать само окно в первом экземпляре приложения со стилем WS_VISIBLE=0), которое не будет нифига делать, а только отвечать на сообщение типа WM_USER_GET_MAIN_HWND (или как тебе его захочется обозвать)? |
OlegO
|
опубликован 02-02-2000 14:09 MSK
Не проще ли использовать Mutex ??? в InitInstance() напримерHANDLE m_Mutex = NULL; m_Mutex = OpenMutex(MUTEX_ALL_ACCESS,TRUE,_T("MutexID")); /// Если существует то выход иначе создаем if(m_Mutex) return FALSE; m_Mutex = CreateMutex(NULL,TRUE,_T("MutexID")); |