Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
facecalf
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 8
1

Как запретить повторный запуск программы

26.06.2014, 18:43. Просмотров 1190. Ответов 4
Метки нет (Все метки)

При загрузке формы запретить запуск этой формы еще раз , допустим что бы выводило "Это программа уже запущена!".
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 18:43
Ответы с готовыми решениями:

Как запретить запуск программы без наличия определенной флешки?
Как сделать так, что бы без вставленной определенной флешки, программа не запускалась???

Как правильно блокировать повторный запуск асинхронной функции ?
Допустим есть асинхронная функция, вызываемая по нажатию кнопки пользователем. Функция не...

Как запретить одновременный запуск нескольких копий программы
да, без использования записи в реестре...

Как запретить запуск второй копии программы при этом сохранить аргументы?
Стало быть очень интересно, есть программа которая должна работать в единственном экземпляре. Это...

Запретить запуск программы
а как запретить запуск программы даже первый раз? т.е. чтоб программа вобще не запускадась Не...

4
Vourhey
Почетный модератор
6496 / 2271 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
26.06.2014, 18:52 2
Классика - именованный мьютекс.
1
zss
Модератор
Эксперт С++
8108 / 7242 / 4508
Регистрация: 18.12.2011
Сообщений: 19,159
Завершенные тесты: 1
26.06.2014, 18:53 3
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Если создавать Win32 приложение, то функция входа в программу имеет вид
C++
1
int WINAPI WinMain(HINSTANCE hi,HINSTANCE hpi,LPSTR lpCmdLine,int nCmdShow);
hi - это handle запускаемой программы.
hpi - handle ранее запущенной программы. Если он NULL, то запускается первый экземпляр.
В Windows Form точка входа по идее должна быть такой же.
На всякий случай переадресую Вашу тему туда.

Вообще-то в руководстве написано несколько другое
hPrevInstance [in]

Type: HINSTANCE

A handle to the previous instance of the application. This parameter is always NULL. If you need to detect whether another instance already exists, create a uniquely named mutex using the CreateMutex function. CreateMutex will succeed even if the mutex already exists, but the function will return ERROR_ALREADY_EXISTS. This indicates that another instance of your application exists, because it created the mutex first. However, a malicious user can create this mutex before you do and prevent your application from starting. To prevent this situation, create a randomly named mutex and store the name so that it can only be obtained by an authorized user. Alternatively, you can use a file for this purpose. To limit your application to one instance per user, create a locked file in the user's profile directory.
Похоже, действительно придется использовать функцию CreateMutex
0
Vourhey
Почетный модератор
6496 / 2271 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
26.06.2014, 18:58 4
Цитата Сообщение от zss Посмотреть сообщение
hpi - handle ранее запущенной программы. Если он NULL, то запускается первый экземпляр.
Ага...
hPrevInstance [in]
Type: HINSTANCE
A handle to the previous instance of the application. This parameter is always NULL.
1
facecalf
0 / 0 / 0
Регистрация: 18.06.2014
Сообщений: 8
26.06.2014, 22:05  [ТС] 5
Vourhey, спасибо.
В C# есть - System.Threading.Mutex.
0
26.06.2014, 22:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2014, 22:05

Как избежать повторный запуск приложения?
Подскажите как можно избежать повторного запуска программы? Поясню: я написал программу, в которой...

Повторный запуск потоков
Добрый день всем. Необходима ваша помощь в следующем вопросе. Есть некий гипотетический код: ...

Повторный запуск метода
Это часть кода для запуска wcf службы. Запускаю вызывая Start(), останавливаю соответственно через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru