3 / 3 / 0
Регистрация: 23.03.2009
Сообщений: 38
|
|
1 | |
Как запретить одновременный запуск нескольких копий программы23.03.2009, 22:10. Показов 32901. Ответов 18
Метки нет (Все метки)
0
|
23.03.2009, 22:10 | |
Ответы с готовыми решениями:
18
запретить одновременный запуск нескольких копий приложения Одновременный запуск только 5 копий программы Одновременный запуск нескольких приложений Одновременный запуск нескольких сессий на сервере |
37 / 32 / 4
Регистрация: 23.01.2009
Сообщений: 141
|
|
24.03.2009, 00:03 | 2 |
Следует унаследовать класс, которому вы передаёте управление из Main, от Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase(перед этим добавив ссылку на Microsoft.VisualBasic.dll ) и в конструкторе указать IsSingleInstance=true.
На WPF точно работает, на WinForms в принципе тоже должно работать
0
|
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
|
|
24.03.2009, 03:38 | 3 |
Будет и на WinForms работать. Можно также реализовать с помощью паттерна Одиночка. Можно проверять по имени в уже запущенных процессах.
0
|
3 / 3 / 0
Регистрация: 23.03.2009
Сообщений: 38
|
|
24.03.2009, 08:05 [ТС] | 4 |
а можно пример привести на С#... А то на словах я не очень соображаю...
0
|
2 / 2 / 0
Регистрация: 23.03.2009
Сообщений: 9
|
|
24.03.2009, 11:09 | 5 |
Имя процесса пользователь может изменить. Лучше по имени класса.
Но гдето читал что это тоже не самый лучший способ, могут возникнуть ситуации когда он не сработает. К сожалению подробностей не помню.
0
|
37 / 35 / 7
Регистрация: 18.04.2009
Сообщений: 376
|
||||||
20.04.2009, 21:41 | 6 | |||||
Я тоже не очень хорошо понял. Приведите пожалуйста пример.
Добавлено через 46 минут 31 секунду Нашёл такой код.
2
|
3 / 3 / 0
Регистрация: 23.03.2009
Сообщений: 38
|
||||||
20.05.2010, 00:15 [ТС] | 7 | |||||
да, закрываю тему и даю свой метод:
2
|
21.05.2010, 09:12 | 8 | |||||
5
|
37 / 35 / 7
Регистрация: 18.04.2009
Сообщений: 376
|
|
10.04.2012, 02:54 | 9 |
0
|
10.04.2012, 10:10 | 10 | ||||||||||
для запрета одновменного запуска я использую этот класс
8
|
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
|
|
10.04.2012, 11:16 | 11 |
0
|
10.04.2012, 13:31 | 12 |
это конечно да, но как узнать какое было состояние у окна до этого 0. Пример: пользователь работал с программой в режиме окна Maximized, свернул окно и забыл, что прога запущена, и пытается запустить приложение снова. Мой код развернет это окно в Normal - размер, а не так как было у пользователя до этого, т.е. задача сводится к тому, чтобы узнать, какое значение FormWindowState было у окна до сворачивания, и восстановить его.
0
|
37 / 35 / 7
Регистрация: 18.04.2009
Сообщений: 376
|
|
10.04.2012, 13:44 | 13 |
В этом то и проблема, чтобы при повторном запуске окно разворачивать. Запрет запуска копии не проблема.
0
|
10.04.2012, 14:01 | 14 |
показанный код разворачивает, но только в состояние Normal (или можно максимальное раскоментить).
Была такая мысль (пока что только теория): Приложение запускается, находит (уже показанным способом) запущенный экземпляр, отправляет ему какое-нить сообщение (типа "showyouself") и закрывается. Запущенный экземпляр, получив такое сообщение, отображает себя (при необходимости разворачивает до нужного размера). Собственно только в теории до сих пор, потому что никак не могу добраться до изучения межпроцессного взаимодействия, если у кого-то есть навыки в данной области, то должно быть не сложно.
1
|
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
|
|
11.04.2012, 04:35 | 15 |
0
|
251 / 163 / 14
Регистрация: 10.03.2012
Сообщений: 544
|
|
11.04.2012, 19:01 | 16 |
Я вот тоже интересуюсь этим вопросом, как можно передать сообщение в уже запущенную копию своего приложения.
0
|
19 / 19 / 1
Регистрация: 28.02.2011
Сообщений: 72
|
||||||
11.04.2012, 20:16 | 17 | |||||
1
|
37 / 35 / 7
Регистрация: 18.04.2009
Сообщений: 376
|
|
12.04.2012, 04:22 | 18 |
http://msdn.microsoft.com/ru-r... 00%29.aspx
для VB это оказывается можно сделать без особых заморочек. В моей студии (VS 2010 Express) почему то этой опции я не нашел !!! [censored] какая то !!! Добавлено через 31 минуту Вот еще решение. http://developer.alexanderklim... stance.php Причем оно как раз связанно с моим предыдущим постом. Правда окно при развертывании к сожалению находиться в состоянии Normal.
0
|
2 / 2 / 1
Регистрация: 21.11.2015
Сообщений: 58
|
|
04.05.2016, 19:05 | 19 |
mutex, здравствуйте!
0
|
04.05.2016, 19:05 | |
04.05.2016, 19:05 | |
Помогаю со студенческими работами здесь
19
Запрет на запуск нескольких копий Запуск нескольких копий приложения Запуск нескольких отдельных копий Edge Чем чревато запуск нескольких копий агента на сервере? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |