|
PureBasic Мощный кросс-платформенный язык среднего уровня на основе BASIC. Подходит для решения широкого круга задач. |
05.08.2011, 23:36
|
#1
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Auto Update
Есть у кого нибудь мысль, как создать такую программу? С легка то я понимаю как сделать, но хотелось бы еще знатоков послушать!!!
Делать хочу для игры...
Вот хотелось бы услышать ваши предложения!!!
|
(Offline)
|
|
05.08.2011, 23:43
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Auto Update
А в чём проблема вообще?
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
06.08.2011, 00:58
|
#3
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Auto Update
Пытаюсь сообразить с чего начать ))
|
(Offline)
|
|
06.08.2011, 03:32
|
#4
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Auto Update
С сервера?
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.08.2011, 18:20
|
#5
|
Чудо-кот
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений (для 1,471 пользователей)
|
Ответ: Auto Update
Сообщение от L-ee-X
Пытаюсь сообразить с чего начать ))
|
Начать нужно прежде всего с открытия IDE и пичатания в нём кода(или с открытия гугла), а не темы в Булевой стране.
|
(Offline)
|
|
07.08.2011, 03:31
|
#6
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Auto Update
Сообщение от Nerd96
Начать нужно прежде всего с открытия IDE и пичатания в нём кода(или с открытия гугла), а не темы в Булевой стране.
|
Шутка удалась, но думаю не всем понятна!!! Без тебя понимаю, что нужно открыть IDE и печатать в нем код..............
|
(Offline)
|
|
07.08.2011, 11:56
|
#7
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Auto Update
L1:
подключился к источнику обновления
получилось?
нет:{
это нормальная программа?
да: прекращаем попытку до следующего перезапуска или истечения времени goto Ln;
нет: бунтуем и требуем подать канал связи и необходимые права, после чего goto L1;
}
Запрашиваем у источника номер свежей версии.
Проверяем свой номер.
Если имеется более свежая версия:
ТИП_ПРОГРАММЫ:{
ИДИОТСКАЯ:
немедленно приступаем к скачиванию, что реализовано как открытие страницы сайта программы с ссылкой на свежую версию, инсталляция которой заключается в замене ряда файлов программы вручную.
КРИТИЧЕСКАЯ_СИСТЕМНАЯ:
немедленно приступаем к скачиванию, процесс непосредственной замены файлов автоматизирован и, если он потребует перезагрузки, предупреждает пользователя о необходимости перезагрузки.
АДЕКВАТНАЯ:
демонстрируем пользователю запрос на скачивание. В случае согласия - сливаем файлы по хттп (который ну уж точно разрешён на машине) с сайта новую версию. Меняем файлы или (если логика программы не позволяет) создаём специальную отметку (приватный конфиг программы, ключ командной строки, дополнительный файл), указывающи при следующем запуске программе, что надо изменить. Просим перезапуска
КОСТЫЛЬНАЯ:
Файлы сливаются в полуавтоматическом режиме (например, пользователь видит запрос IE [хотя пользуется FF]) и должен указать верный путь. После чего программа генерит жутковатый bat-файл, который должен будет пропатчить её при перезагрузке системы, но, вместо этого, будет забанен антивирусной системой.
ИЗ_ПРОШЛОГО:
Вся автоматизация заключается в открытии сайта программы (который уже может и переехал, а линк на старом отсутствует) в браузере после клика на опцию "проверить обновления"
}
Ln:
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
07.08.2011, 13:26
|
#8
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: Auto Update
Кроме того на цетере есть статья как сделать автоапдейтер на Blitz3d
http://blitzetc.blitzmax.ru
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.08.2011, 13:36
|
#9
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Auto Update
Однако для нормальной работы на Vista/7 нужно учитывать политику прав пользователей. Обычно приложение запущенное с обычными правами не имеет права писать в собственную папку.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
07.08.2011, 14:26
|
#10
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Auto Update
На геймдев.ру Аврелий как раз этим сейчас занят. В треде много хлама, но полезная инфа тоже есть.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.08.2011, 01:56
|
#11
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Auto Update
Возник вопрос!!! Не могу от сервера послать клиенту данные!!!
Сервер у меня в виде консольного приложения идет...
Вот код как все прописано!!!
Сервер:
Select NetworkServerEvent()
Case 1
Case 2
PrintN("Client " + "ID - " + Str(EventClient()) + " IP Adress:" + IPString(GetClientIP(EventClient())))
ReceiveNetworkData(EventClient(), Buffer, 20000)
PrintN("Comand Server: " + PeekS(Buffer))
If PeekS(Buffer) = "VersionServer"
SendNetworkString(EventClient(), "Version Server")
EndIf
Case 3
Case 4
PrintN("Client " + "ID:" + Str(EventClient()) + " Closed Server Version:")
EndSelect
Клиент:
Procedure ConnectServerVersion()
ConnectionID = OpenNetworkConnection("192.168.11.227",PortVersion)
If ConnectionID
;StatusBarText(0, 0, "Клиент успешно подключен...", #PB_StatusBar_Center)
VersionConnected=1
Else
MessageRequester("Ошибка", "Сервер обновлений не доступен!", #MB_OK|#MB_ICONINFORMATION)
EndIf
If VersionConnected=1
SendNetworkString(ConnectionID,"VersionServer")
EndIf
EndProcedure
Select Event
Case #PB_Event_Gadget
Select g_event
Case #Button_0
ConnectServerVersion()
If VersionConnected=1
Select NetworkClientEvent(ConnectionID)
Case 0
Case 1
ReceiveNetworkData(ConnectionID,mem,20000)
MessageRequester("Сообщение", PeekS(mem), #MB_OK|#MB_ICONINFORMATION)
Case 2
EndSelect
EndIf
Case #Button_1
Case #Button_2
EndSelect
EndSelect
При нажатии кнопки в клиенте, он посылает данные серверу и сервер в ответ должен отослать клиенту текущую версию сервера... Но вот почему то клиент успешно отсылает данные серверу, а сервер клиенту почему то не отсылает... В чем проблема понять не могу!!!
|
(Offline)
|
|
14.08.2011, 13:07
|
#12
|
Разработчик
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений (для 220 пользователей)
|
Ответ: Auto Update
Всем спасибо, разобрался...
Не прописал переменную VersionConnected в Global's
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:25.
|