![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
mmv |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
Как запретить запуск дубля программы, не используя переменную THandle? Дело в том, что в моем приложении есть splash-заставка, использующая Application.ProcessMessages.
|
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Открой *.dpr своего проекта и ищи копию своей программы, например, используя FindWindow или Мьютексы(CreateMutex, OpenMutex и т.д.) в зависимости от результатов этих функций разрешай\запрещай запуск своей проги. Вот пример(*.dpr):
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Еще один вариант:
-------------------- |
|||
|
||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Или же через семафары...
procedure dontruntwo(sSemaphore_name : string); var hSemaphore:thandle; begin hSemaphore := CreateSemaphore( nil, 0, 1, pchar(name) ); IF ((hSemaphore <> 0) and (GetLastError = ERROR_ALREADY_EXISTS)) THEN BEGIN CloseHandle(hSemaphore); Halt; end; end; -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
GORI |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 29.10.2005 Где: Ukraine, Kharkov Репутация: нет Всего: нет |
Да способы хороши, но у меня тоже присутствует splash заставка и программа является редактором с MDI.
Мне бы еще параметры запуска передавать... имя файла например |
|||
|
||||
Max111 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 18.1.2006 Репутация: нет Всего: нет |
Доброе утро,
Так речь то об файле проекта если в нем поставить следующее begin // регистрация широковещательного сообщения GroupManager.FM_MESSAGE_TO_FOX_COPY := RegisterWindowMessage('MyMessageToFox'); GroupManager.FM_TERMINATE_ID := RegisterWindowMessage('TerminateTests'); CreateFileMapping($FFFFFFFF,Nil,PAGE_READONLY,0,1,VERSION_NAME); If GetLastError<>ERROR_ALREADY_EXISTS Then Begin // создание и прокрутка заставки Form7 := TForm7.Create(Application); Form7.Caption:=VERSION_NAME; Form7.Show; Form7.Update; Else If GetLastError=ERROR_ALREADY_EXISTS Then Begin // посылка сообщения предыдущей копии открыть новый файл VerifyofNextCopy; End; |
|||
|
||||
andrey_pst |
|
||||
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 37 Регистрация: 24.4.2003 Где: Пермь Репутация: 1 Всего: 1 |
через мутекс:
в файле *.dpr пишем
в uses GTHDJQ строкой должен быть модуль OneHinst а вот и сам модуль:
|
||||
|
|||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
в файле dpr (меню Project->View Source)
а теперь добавляем модуль в проект, просто дабавляем
|
||||
|
|||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
по правилам форума - это нужно тебе создавать в новой теме, а лучше воспользоваться поиском, но... иногдап можно пошалить ![]()
Добавлено @ 09:49
у меня тоже есть... ну не заставка, а форма логина... проверь сначала ведь это дискриптор приложения, а не главной формы |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |