Аннотация:
В статье подробно рассматриваются различные способы ограничения числа запущенных копий приложения одной. Указываются недостатки и даже ошибки во многих известных методах решения задачи, которые постоянно фигурируют в конференциях и в Сети. Кроме того, указывает на различные трактовки понятия "одна копия приложения" и демонстрирует правильное решение для каждого из случаев.
Понятно, что это перевод, но хотелось бы знать: если Маэстро пишет некорректно, то почему я никогда не видел два окна, например Word или Visual Studio.
Здравствуйте, Слава, Вы писали:
С>Понятно, что это перевод, но хотелось бы знать: если Маэстро пишет некорректно, то почему я никогда не видел два окна, например Word или Visual Studio.
Вы просто не пробовали.
... << RSDN@Home 1.0 beta 6a >>
Re: Как избежать запуска нескольких экземпляров приложения
Здравствуйте, Алексей Остапенко, Вы писали:
АО>Статья: АО>Dr. Joseph M. Newcomer. Как избежать запуска нескольких экземпляров приложения
АО>Авторы: АО> Алексей Остапенко
Авторы: ... их один и это автор перевода
Re[2]: Как избежать запуска нескольких экземпляров приложени
Здравствуйте, KGP, Вы писали:
АО>>Статья: АО>>Dr. Joseph M. Newcomer. Как избежать запуска нескольких экземпляров приложения
АО>>Авторы: АО>> Алексей Остапенко
KGP> Авторы: ... их один и это автор перевода
Сообщение очевидно автосгенерированное, причем сгенерировано криво.
"Будь достоин победы" (c) 8th Wizard's rule.
Re: Как избежать запуска нескольких экземпляров приложения
Здравствуйте, Алексей Остапенко, Вы писали:
АО>Статья:
АО>Авторы: АО> Алексей Остапенко
АО>Аннотация: АО>В статье подробно рассматриваются различные способы ограничения числа запущенных копий приложения одной. Указываются недостатки и даже ошибки во многих известных методах решения задачи, которые постоянно фигурируют в конференциях и в Сети. Кроме того, указывает на различные трактовки понятия "одна копия приложения" и демонстрирует правильное решение для каждого из случаев.
Сейчас понадобилось `нечто подобное. Прочитал, и в одном месте у меня возникли смутные сомнения.
В последнем BOOL CMyApp::InitInstance() разве не надо вместо
Здравствуйте, abacus, Вы писали:
A>Сейчас понадобилось `нечто подобное. Прочитал, и в одном месте у меня возникли смутные сомнения. A>В последнем BOOL CMyApp::InitInstance() разве не надо вместо
Я не автор, а переводчик. Такие вопросы нужно автору задавать.
A>
A>AlreadyRunning = (GetLastError() == ERROR_ALREADY_EXISTS);
A>
Зачем такие сложности?
Вроде функции создания именованных объектов ядра Create* автоматически создадут имя в Local\ namespace на компьютере с Fast User Switching.
Сейчас для теста создал мьютекс, запуск проверки запуска приложения из под одного пользователя не мешает запускать его из под другого.
Правильно работающая программа — просто частный случай Undefined Behavior
Re: Как избежать запуска нескольких экземпляров приложения
Отмечу, что в предложенной функции createExclusionName используются функции, реализованные только в линейке Windows NT. Поэтому, для гарантированной работы приложения во всех версиях Windows, эти функции стоит подключать динамически через LoadLibrary/GetProcAddress.
Re: Как избежать запуска нескольких экземпляров приложения
Здравствуйте, Алексей Остапенко, Вы писали:
АО>В статье подробно рассматриваются различные способы ограничения числа запущенных копий приложения одной. Указываются недостатки и даже ошибки во многих известных методах решения задачи, которые постоянно фигурируют в конференциях и в Сети. Кроме того, указывает на различные трактовки понятия "одна копия приложения" и демонстрирует правильное решение для каждого из случаев.
Вообще говоря, не надо этим увлекаться. А то несколько бесит, когда программы, которым логически ничего бы не мешало работать в нескольких копиях, тем не менее упорно отказываются запускаться в таком режиме.
Re[2]: Как избежать запуска нескольких экземпляров приложени
Здравствуйте, Gibbel, Вы писали:
G>Отмечу, что в предложенной функции createExclusionName используются функции, реализованные только в линейке Windows NT. Поэтому, для гарантированной работы приложения во всех версиях Windows, эти функции стоит подключать динамически через LoadLibrary/GetProcAddress.
Отмечу, что в предложенной функции используются средства, вообще не реализованные в Windows 3.x, поэтому для гарантированной работы приложения во всех версиях Windows даже это не поможет