ПрограммированиеФорумОбщее

потестите прогу Launcher для движка + [начиная с 4-5 страницы - епопея с правами доступа] (2 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#15
17:44, 30 июля 2011

Аврелий
avr_update | потестите прогу Launcher для движка + [начиная с 4-5 страницы - епопея с правами доступа]

#16
10:17, 31 июля 2011

evirus
на скрине все нормально =)
или ты о надписи "AllWaysEngine" на фоне? (если да, то это просто картинка)


когда делал - смотрел на этот лаунчер:
ubiaunch | потестите прогу Launcher для движка + [начиная с 4-5 страницы - епопея с правами доступа]

правда слепил по своему, добавлил апдейтер, а то в уби он отдельно, ну и убрал ачивы, по цветам себе только черный выбрал...

#17
10:34, 31 июля 2011

Аврелий
Да про надпись. Мне не нравится, что она смотрится "не к месту" - не по размеру. Я бы, наверное, в заголовок вынес, как на примере.
Еще мне кажется, что информация о патче лишняя. На нее можно ссылку в новостях давать.

#18
10:51, 31 июля 2011

evirus
> Еще мне кажется, что информация о патче лишняя. На нее можно ссылку в новостях
> давать.
к примеру в близардовском апдейтере выводится инфо не только о патче, а и о предыдущих, что в принципе удобно.
> Да про надпись. Мне не нравится, что она смотрится "не к месту" - не по размеру
ну это болванка, там может быть любая картинка, зависимо от проекта.

#19
16:17, 31 июля 2011

Работает.
Без инета или ДНС выскакивает окошко с текстом I/O error 1784.
Если нет прав на изменение или флаг "только чтение", то окошко с текстом File access denied и остается только закрыть лаунчер
В общем работает предсказуемо. Под Windows 7 из папки Program Files не работает - File access denied

#20
11:59, 2 авг 2011

Jerzy
> Под Windows 7 из папки Program Files не работает - File access denied
кстати да, извесная проблема ведь, знаю что некоторые проги переехали в папку Application Data....
а что с етим делать обычно?

#21
14:36, 2 авг 2011

Аврелий
> а что с етим делать обычно?
Создавать файлы и писать в них только в  Application Data\your_app, если не ошибаюсь

#22
14:50, 2 авг 2011

Riddik
> Создавать файлы и писать в них только в Application Data\your_app, если не
> ошибаюсь
это ж походу проблем нету, если юзверь сам заинсталит туда прогу... =\?

#23
15:51, 2 авг 2011

Аврелий
Я невнимательно посмотрел тему - сорри. Показалось, что речь о создании файла-лога какого-нибудь или что-то в этом роде. А как заменить файл в произвольно папке на windows 7 - не знаю. Но как то ж инсталлируются проги, не все же они в  Application Data складываются

#24
15:54, 2 авг 2011

Riddik
> не все же они в Application Data складываются
ну, последняя мода такова, что все таки складываются. к примеру некоторые браузеры (Opera) последних версий уже живут в Application Data

#25
16:09, 2 авг 2011

что б разрулить этот вопрос нужен "отец". Ты же вроде можешь у кого-нибудь из "кранков" поинтересоваться? :)
Или из местных. Думаю, slava_mib поможет)

#26
17:00, 2 авг 2011

Аврелий
> ну, последняя мода такова, что все таки складываются. к примеру некоторые
> браузеры (Opera) последних версий уже живут в Application Data
Потому что в соотв. с политикой безопасности писать в Program files НЕЛЬЗЯ (не из под админа естественно). Поэтому если писать всёже нужно, то всё данные которые к которым нужен доступ на запись пишут в разрешённые места, например Application Data. При том как сейчас сделано в Win, по людски сделать поддержку пользователя с ограниченными правами нельзя, т.к. при инсталяции пользователь выбирает папку, но в неё пишеться только лаунчер и тому подобное, а все данные идут например в Application Data. Конечно можно на этапе инсталяции проверять есть ли права на запись в указанное расположение, но ведь инсталировать могут из под админа (всякий бред вроде родительский контроль и т.д.). Данная особенность очень напрягает если я пытаюсь поставить игру да диск D например, а она мне всё равно на C пишет (а там места нету).

#27
17:21, 2 авг 2011

обратился к slava_mib...
он дал наводку на UAC (user accaunt control) вроде, оно даст возможность спрашивать юзера разрешения на то, чтобы чето-там писать где надо.
но если углубится в детали, то такая возможность всеравно не будет у всех юзеров. (смотря как настроено типа)

поетому я подумал об неком обходном варианте:
1) инсталим прогу куда надо, к примеру в Program Files (интересно, что инсталер то может валить файлы куда надо) хотя зависимо кто инсталер делал...
2) при инстале творим в Application Data папку для игры.
3) инсталим в ApplicationData основной exe Игры и Launcher. нам потребуется еще одна прога - LauncherOfLauncher, ее пишем в все тот же Program Files, вместе со всеми даными игры, делаем ей красивую иконку. именно ее будет запускать игрок всегда, на нее же делаем ярлык на рабочий стол.
4) при запуске LauncherOfLauncher - запускаем лаунчер из AppData, если апдейтов нет, то кликая Play оно запустит сам екзешник игры из AppData. если есть апдейты - качаем их прямо в AppData, + творим соответствующие папки для необходимых ресурсов, типо папки "AppData\Textures\" или там "AppData\Sounds\"... + лаунчер размещенный в AppData может апдейтить сам себя.
5) тут самое интересное - обращение к файлам из основного exe игры меняется:
было допустим так:

LoadTexture("localAdres\Textures\Tex1.jpg");

а теперь будет так:

if FileExist("...AppData\Textures\Tex1.jpg")
LoadTexture("...AppData\Textures\Tex1.jpg");
else
LoadTexture("localAdres\Textures\Tex1.jpg");

в итоге все файлы, которые менялись при патчах будут сидеть в Application Data, и никаких вопросов не будет =)
единственный минус - если меняем ресурсы игры, типо звуков, текстур, то старые файлы так и останутся в ProgramFiles, и мы не сможем их удалить,
но учитывая что патчи обычно не такие уж и большие, то мусора насобиратся много не должно...
[вспоминаются патчи из старкрафта по 50 мб x_x]


большой плюс в том, что оно будет работать у всех юзеров.

#28
17:41, 2 авг 2011

Выглядит вполне работоспособным вариантом. :)
В качестве очень полезного бонуса узнать бы как это делают те же Blizzard и прочие, у которых есть лаунчер и регулярные апдейты :)

#29
17:48, 2 авг 2011

забыл еще одну деталь... но она подходит под описание:

if FileExist("...AppData\Textures\Tex1.jpg")
LoadTexture("...AppData\Textures\Tex1.jpg");
else
LoadTexture("localAdres\Textures\Tex1.jpg");

если файл есть только в патче, а в оригинальной версии его нету, то он как раз будет найден в AppData, но если его там не будет,

LoadTexture("localAdres\Textures\Tex1.jpg");

даст фейл. но думаю, если апдейты будут работать нормально, то такого не должно случатся.
но если случится, то надо так:

if FileExist("...AppData\Textures\Tex1.jpg")
LoadTexture("...AppData\Textures\Tex1.jpg");
else
if FileExist("...localAdres\Textures\Tex1.jpg")
LoadTexture("localAdres\Textures\Tex1.jpg");
else ShowMessage("ошибко")
Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.