Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Blitz3D > FAQ

FAQ Туториалы и часто задаваемые вопросы

Ответ
 
Опции темы
Старый 10.02.2009, 13:00   #1
HAMANN
Нуждающийся
 
Аватар для HAMANN
 
Регистрация: 05.08.2008
Сообщений: 73
Написано 11 полезных сообщений
(для 24 пользователей)
Вопрос Как не дать приложению запуститься более 1 раза?

Доброго времени суток! Скажите, пожалуйста, как не дать приложению запускаться более 1- го раза?
(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 13:14   #2
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 772 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

создай файл в который будешь записывать значение переменной. Если переменная приняла некоторое значение, то приложение при запуске будет убиваться.
(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 13:23   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,442
Написано 5,269 полезных сообщений
(для 15,227 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

Какова цель если не секрет?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 13:40   #4
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

Надёжнее ИМХО записать в реестр
(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 13:41   #5
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,921
Написано 3,411 полезных сообщений
(для 9,319 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

Можно поискать окно с требуемым (своим) заголовком..ещё в многие среды разработки позволяют задать приложению флаг отвечающий за только однократный запуск.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (10.02.2009)
Старый 10.02.2009, 13:58   #6
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,442
Написано 5,269 полезных сообщений
(для 15,227 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

По ходу Джокер предложил наиболее приемлемый вариант (с окнами)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 14:08   #7
jimon
 
Сообщений: n/a
Ответ: Как не дать приложению запуститься более 1 раза?

в линуксе опера для этого создаёт файл
 
Ответить с цитированием
Старый 10.02.2009, 14:37   #8
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 772 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

Сообщение от Tadeus Посмотреть сообщение
Надёжнее ИМХО записать в реестр
надежнее для чего? автор помойму не говорил что это от злоумышленников делается
От просто юзверя можно сделать и файлом и запрятать его куда-нить в "мои документы"
(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 15:14   #9
HAMANN
Нуждающийся
 
Аватар для HAMANN
 
Регистрация: 05.08.2008
Сообщений: 73
Написано 11 полезных сообщений
(для 24 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

Сообщение от H@NON Посмотреть сообщение
надежнее для чего? автор помойму не говорил что это от злоумышленников делается
делается это именно от них) так что надо что нибудь надежнее.
Джокер
Можешь расписать свой вариант поподробнее?
(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 15:26   #10
HolyDel
 
Регистрация: 25.09.2006
Сообщений: 6,030
Написано 1,469 полезных сообщений
(для 2,690 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

C++
if(FindWindow(0,"mycaption")!=0)exit(0);
blitz
if FindWindow(0,"mycaptiom")<>0 then end
функция вин-апи ее надо внести через decls файл. лежит в user32.dll

Последний раз редактировалось HolyDel, 10.02.2009 в 18:52.
(Offline)
 
Ответить с цитированием
Эти 11 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
ABTOMAT (10.02.2009), Артем Валерьевич (04.02.2011), Blender (01.02.2010), Dream (11.02.2009), Egor Rezenov (19.03.2011), HAMANN (10.02.2009), Harter (10.02.2009), impersonalis (10.02.2009), newman (10.02.2009), SBJoker (10.02.2009), tormoz (10.02.2009)
Старый 10.02.2009, 16:07   #11
Venom
Оператор ЭВМ
 
Регистрация: 25.02.2008
Сообщений: 24
Написано 8 полезных сообщений
(для 30 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

Жжоте, для этого в windows существуют mutex обьекты или по-русски "семафоры".
файл "kernel32.decls" (в папке блица "userlibs"):
.lib "kernel32.dll"
CreateMutexA%(security%, initial%, name$)
CloseHandle(handle%)
GetLastError%()
Пример:
;Открываем семафор
Local mutex%
mutex = CreateMutexA(0, 0, "the one")
;Если возникла ошибка 183 - такой семафор уже существует
If (GetLastError() = 183) Then
    ;значит это второй экземпляр программы - выходим
    End
EndIf

Graphics3D(800, 600, 32, 2)
SetBuffer(BackBuffer())
CreateCamera()
Repeat
    RenderWorld()
    Flip()
Until (KeyDown(1))

;закрываем семафор
CloseHandle(mutex)

End
(Offline)
 
Ответить с цитированием
Эти 8 пользователя(ей) сказали Спасибо Venom за это полезное сообщение:
Blender (01.02.2010), Buraki (10.02.2009), H@NON (10.02.2009), HAMANN (10.02.2009), Harter (12.10.2009), HolyDel (10.02.2009), impersonalis (10.02.2009), Tadeus (10.02.2009)
Старый 10.02.2009, 16:32   #12
HAMANN
Нуждающийся
 
Аватар для HAMANN
 
Регистрация: 05.08.2008
Сообщений: 73
Написано 11 полезных сообщений
(для 24 пользователей)
Ответ: Как не дать приложению запуститься более 1 раза?

кул!! все работает. спасибо
(Offline)
 
Ответить с цитированием
Старый 10.02.2009, 17:03   #13
jimon
 
Сообщений: n/a
Ответ: Как не дать приложению запуститься более 1 раза?

вот что пишет MSDN по-поводу CreateMutex
If you are using a named mutex to limit your application to a single instance, 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.
так что будте осторожны
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Blender (01.02.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы более чем ~4 194Мб ABTOMAT Болтовня 25 24.11.2009 22:52
Помогите добиться более реального управления танком xD HAMANN 3D-программирование 10 12.02.2009 16:23
как вывести из функции более 1-ой переменной CRASHER 2D-программирование 12 03.03.2008 15:57


Часовой пояс GMT +1, время: 04:57.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com