Ru-Board.club
← Вернуться в раздел «Программы»

» Autoplay Media Studio

Автор: tavria2
Дата сообщения: 21.11.2006 21:09
NightW0lf

Цитата:
есть ли русификатор для AutoPlay Media Studio v6.0.4.0?

Похоже, что нет.
Автор: NightW0lf
Дата сообщения: 21.11.2006 21:20
Так с тем совсем я разобрался теперь для полного результат мне осталось сделать следующие:

Надо чтобы если игра не установлена то: Label установить будет активна и на нее можно нажать

1. Надо чтобы если игра УЖЕ установлена то Label "установить" будет серой, НО на нее можно было бы нажать, потом появляется диалог "игра уже установлена, хотите продолжить?" если "да" то запускается файл установки игры, а если "нет" то ничего не происходит.
2. Надо чтобы если игра ЕЩЕ НЕ установлена то Label "запустить" и "удалить" будет серой, НО на них можно было бы нажать, потом появляется диалог "игра еще не установлена" (Label "удалить" тоже самое).

????
Автор: tavria2
Дата сообщения: 21.11.2006 23:12
NightW0lf

Цитата:
Надо чтобы если игра УЖЕ установлена то Label "установить" будет серой, НО на нее можно было бы нажать

Вместо изменения активности "кнопок" - меняй их цвет:
Код: result = Registry.GetValue(......); -- читаем значение из реестра

local tColorWhite={ColorNormal=Math.HexColorToNumber("FFFFFF")}; -- белый
local tColorGrey={ColorNormal=Math.HexColorToNumber("C0C0C0")}; -- серый

if result=="" then -- если в реестре нет записи
Label.SetProperties("button_install", tColorGrey);
Label.SetProperties("button_play", tColorWhite);
else -- в реестре есть запись
Label.SetProperties("button_install", tColorWhite);
Label.SetProperties("button_play", tColorGrey);
end
Автор: NightW0lf
Дата сообщения: 22.11.2006 13:40
tavria2

ОК! попробую

Добавлено:

Цитата:
С диалогами я думаю ты и сам разберешся.


НЕТ! я что-то полностью запутался с этими диалогами, нужна ТВОЯ помощь!

еще раз объясню что именно мне нужно

Мне нужно чтобы:

1. Если ключа в реестре НЕТ, то тогда Label «установить» будет белого цвета и при нажатии на него появится диалог ("Установка", "Вы уверены, что хотите продолжить установку?" «да» или «нет») при нажатии на «да» запускается установка игры, а Label «запустить» и «удалить» остаются серыми, НО при нажатии на Label «запустить» или «удалить» появляется диалог «"Запуск", "Игра не установлена." «ОК» и тоже самое для Label «удалить» «"Удаление", "Игра не установлена."
2. Если ключа в реестре ПИРИСУСТВУЕТ, то тогда Label «установить» будет серого цвета и при нажатии на него появится диалог ("Установка", "Игра уже установлена! Хотите продолжить?" «да» или «нет») при нажатии на «да» запускается установка игры. Label «запустить» и «удалить» становятся белого цвета и при нажатии на Label «запустить» запускается игра, при нажатии Label «удалить» запускается удаление игры.
Автор: NightW0lf
Дата сообщения: 22.11.2006 21:50
и еще: как этим же способом сделать так чтобы при наведении Label'ы (Установить, Запустить, Удалить) не загарались желтым ыветом?
Автор: tavria2
Дата сообщения: 23.11.2006 12:31
NightW0lf

Цитата:
как этим же способом сделать так чтобы при наведении Label'ы (Установить, Запустить, Удалить) не загарались желтым ыветом?
См. справку Label.SetProperties - установка св-ств Label'а.
Код: result = Registry.GetValue(......); -- читаем значение из реестра

local tColorWhite={
ColorNormal=Math.HexColorToNumber("FFFFFF"); -- белый "Normal"
ColorHighlight=Math.HexColorToNumber("FFFF00")}; -- желтый "Highlight"
local tColorGrey={
ColorNormal=Math.HexColorToNumber("C0C0C0"); -- серый "Normal"
ColorHighlight=Math.HexColorToNumber("C0C0C0")}; -- серый "Highlight"

if result=="" then -- если в реестре нет записи
Label.SetProperties("button_install", tColorGrey);
Label.SetProperties("button_play", tColorWhite);
else -- в реестре есть запись
Label.SetProperties("button_install", tColorWhite);
Label.SetProperties("button_play", tColorGrey);
end
Автор: NightW0lf
Дата сообщения: 23.11.2006 13:18
tavria2

ОК! Буду пробовать.

Большое спасибо за ВСЕ разъяснения и помощь!

Все работает!

Кому интересно этот код пишется у кнопки "Установить" на событие On Click (для примера использован 7zip)


Код: search_reg_data = Registry.GetValue(HKEY_CURRENT_USER, "Software\\7-Zip", "Path", true); -- читаем значение из реестра

if search_reg_data == "" then -- если в реестре нет записи
run_install = Dialog.Message("Установка", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if (run_install == IDYES) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, true);
end

error = Application.GetLastError(); -- при случае ошибки
if (error ~= 0) then
Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
end

else -- в реестре есть запись
run_install = Dialog.Message("Установка", "Игра уже установлена, хотите продолжить?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if (run_install == IDYES) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, true);
end
end
Автор: tavria2
Дата сообщения: 23.11.2006 22:16
NightW0lf

Цитата:
Как мне сделать (основываясь на моем выше указанном коде) так чтобы при запуске установки мой «autorun.exe» закрывался? А то у меня получается после завершения установки он только закрывается.

В примере твоего кода вообще не видно где и когда ты делаешь выход из своего проекта. Если ты хочешь, чтобы при запуске "установки" закрывался твой проект, то запуск "установки" нужно производить с флагом "без ожидания завершения выполнения". Например:
Код: if (run_install == IDYES) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, false);
Application.Exit(0);
end
Автор: NightW0lf
Дата сообщения: 24.11.2006 12:17
Спасибо за ответ, tavria2!

Все работает!
А теперь как мне сделать обработку ошибки при условии если нет инсталлятора, то перед тем запустится сам инсталлятор и autorun.exe будет закрыт – выскачет это сообщение "Ошибка", "Инсталлятор не найден!" (если нет инсталлятора).

В этом коде:

Код: if (run_install == IDYES) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, false);
Application.Exit(0);
end
Автор: tavria2
Дата сообщения: 24.11.2006 19:44
NightW0lf
См. справку File.Run, там как раз есть пример с проверкой на ошибку.
Автор: NightW0lf
Дата сообщения: 24.11.2006 20:40
tavria2

То что описано в справке об разделе «File.Run» я знаю.
Мне надо НЕ просто при запуске инсталлятора проверять на наличии ошибки (это я сделал), а при запуске функции которая запустит инсталлятор и в этот момент закроет мой autorun.exe (вот здесь и надо мне проверить на наличии ошибки, а не там)
Автор: tavria2
Дата сообщения: 24.11.2006 22:44
NightW0lf
Что-то я уже совсем ничего не понимаю, ты хочешь закрыть проект, а потом сделать проверку на ошибку?
Автор: DenVl
Дата сообщения: 25.11.2006 14:19
Нужна помощь!
Имеется zip-архив, который лежит в папке Cd Root и оюъект Progress1 на странице проекта, как сделать чтоб на On Preload страницы началась распаковка архива в некоторую временную папку и прогресс этой распаковки отображался в объекте Progress1.
Автор: NightW0lf
Дата сообщения: 25.11.2006 15:35
tavria2

Цитата:
Что-то я уже совсем ничего не понимаю, ты хочешь закрыть проект, а потом сделать проверку на ошибку?

Мне надо чтобы при нажатии на кнопку установить появлялся диалог, который предлагает мне установить игру, далее запускается инсталлятор и закрывается мой autorun.exe (это я сделал!), А ВОТ и суть моего вопроса в том, что если хоть какая-нибудь ошибка присутствует (например - в каталоге нет самого инсталлятора и т.п.) ТО происходит следующее - при нажатии на кнопку установить появляется диалог, который предлагает мне установить игру, далее инсталлятор НЕ запускается, а вот мой autorun.exe закрывается БЕЗ всяких намеков на ошибку!
Вот тот самый код который должен обрабатывать ошибку:

Код:
search_reg_data = Registry.GetValue(HKEY_CURRENT_USER, "Software\\7-Zip", "Path", true); -- читаем значение из реестра

if search_reg_data == "" then -- если в реестре нет записи
run_install = Dialog.Message("Установка", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if (run_install == IDYES) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, true);
end
Автор: tavria2
Дата сообщения: 25.11.2006 18:53
NightW0lf
Добавь просто выход из проекта после File.Run. Если инсталлятор отсутствует - проект будет закрыт без сообщений об ошибке. Если всеже нужно сообщение об ошибке, см. справку File.Run => Пример 3 - там как раз есть пример с проверкой на ошибку, которая обрабатывается после выполнения твоего File.Run.

P.S. Все вышесказанное уже было изложено в предыдущих постах, толчем воду в ступе.
Автор: tavria2
Дата сообщения: 25.11.2006 21:31
DenVl
Цитата:
... как сделать чтоб на On Preload страницы началась распаковка архива в некоторую временную папку и прогресс этой распаковки отображался в объекте Progress1.

Из On Preload страницы, ты не достучишься к объектам, т.к. в этот момент страница еще не загружена, пиши код в On Show страницы.
Добавь на страницу следующие объекты:Progress с именем "Progress_Current" - прогресс текущего файла
Progress с именем "Progress_Total" - общий прогресс
Label с именем "Label_Info" - информация распаковки
Button с именем "Button_Cancel" - кнопка прерывания процесса распаковки
On Show страницы
Код: -- Объявляем переменные
cFileZip = _SourceFolder.."\\MyFile.zip"; -- путь к zip-файлу
cPathExtract = "C:\\TEMP"; -- папка для распаковки
lBreakExtract = false; -- флаг прерывания процесса распаковки

-- Функция управлением прогресса
function CallBack(String, Percent, Status)
Label.SetText("Label_Info", String); -- инфо распаковки    
if (Status == ZIP_STATUS_MINOR) then -- прогресс текущего файла
Progress.SetCurrentPos("Progress_Current", Percent); -- позиция прогресса текущего файла
Progress.SetText("Progress_Current", Percent.."%"); -- отображение процента выполнения
else -- общий прогресс
Progress.SetCurrentPos("Progress_Total", Percent); -- позиция общего прогресса
Progress.SetText("Progress_Total", Percent.."%"); -- отображение процента выполнения
end
-- Разрешение/Запрещение продолжения распаковки
if (lBreakExtract) then -- установлен флаг прерывания процесса распаковки
return false; -- прервать процесс распаковки
else -- не установлен флаг прерывания процесса распаковки
return true; -- продолжать процесс распаковки
end
end

Zip.Extract(cFileZip, {"*.*"}, cPathExtract, true, true, "", ZIP_OVERWRITE_NEVER, CallBack);
Автор: DenVl
Дата сообщения: 26.11.2006 15:51
tavria2
А можно еще какой-нидь код добавить, чтоб пока идет распаковка архива, ничаво нельзя было нажимать, т.е. какой нидь sleep страницы. Спасибо..
Автор: tavria2
Дата сообщения: 26.11.2006 17:37
DenVl
В объектах есть такое св-во SetEnabled, которое отвечает за блокировку/разблокировку объекта. Блокируй необходимые объекты до начала распаковки, по ее окончанию - разблокируй.
Автор: NightW0lf
Дата сообщения: 26.11.2006 19:09
У кого ни будь есть русская справка для Autoplay Media Studio v6.0.x? А то уже мой русик для AutoPlay Media Studio 6.0.4.0 Full Retail Cracked by Kindly почти готов, и вот хочется справку тоже на русском добавить.

P.S. сорри за офф топик!
Автор: Andreyrr
Дата сообщения: 28.11.2006 09:56
В проекте используется объект Область ввода.
При установке стиля ввода как Стандарт
Все работает нормально и в английской и в русской раскладке клавиатуры.

Но мне необходимо использовать маску ввода, чтобы первая буква вводимого текста была заглавной
Отмечаю маска ввода и прописываю >????????????
При английской клавиатуре все работает нормально, при переходе на русскую напечатать в поле ввода ничего нельзя.

Как быть?

И еще вопрос. Как сделать, чтобы при открытии страницы или запуска готового проекта клавиатура автоматический переключалась на Русский.
Автор: tavria2
Дата сообщения: 28.11.2006 13:05
Andreyrr

Цитата:
При английской клавиатуре все работает нормально, при переходе на русскую напечатать в поле ввода ничего нельзя.

Маска ввода пропускает символы только первой половины кодовой таблицы [0-9] и [A-z]. IMHO с русским здесь - тупик .

Цитата:
Как сделать, чтобы при открытии страницы или запуска готового проекта клавиатура автоматический переключалась на Русский.

Пример с использованием API:
Исправлено! (была допущена ошибка в возвращаемом типе)
Код: EN = "00000409"; -- английский
RU = "00000419"; -- русский
UK = "00000422"; -- украинский

function SelLang(cLang)
cResult = DLL.CallFunction(_SystemFolder.."\\user32.dll", "LoadKeyboardLayoutA", "\""..cLang.."\",1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
cHexResult = "0000"..String.Right(string.format("%X", cResult), 4); -- конвертирование Dec в Hex
if (cLang == cHexResult) then return true else return false end
end
-- вызов ф-ции переключения раскладки клавиатуры
if SelLang(RU) then
Dialog.Message("", "Успешно!");
else
Dialog.Message("", "Ошибка!");
end
Автор: DenVl
Дата сообщения: 28.11.2006 14:40
можно ли как-нидь узнать скоко времени будет распаковываться архив?
Автор: NightW0lf
Дата сообщения: 28.11.2006 14:45
tavria2
Большое спасибо!
С тем я разобрался.
А как сделать (мне просто интересно), чтобы если инсталлятор не найден то выскачет сообщение с ошибкой и проект останется открытым, а если все нормально (т.е. нет ошибок) то просто запустится инсталлятор, а проект будет закрыт?
Автор: tavria2
Дата сообщения: 28.11.2006 18:28
DenVl

Цитата:
можно ли как-нидь узнать скоко времени будет распаковываться архив?

Возможно я ошибаюсь, но скорее всего нельзя, т.к. для расчета времени необходимо знать размеры файлов в архиве и кол-во обработанных байт. К сожалению штатный архиватор не дает таких данных.

Как вариант, можно попробовать использовать внешние архиваторы.


NightW0lf

Цитата:
А как сделать (мне просто интересно), чтобы если инсталлятор не найден то выскачет сообщение с ошибкой и проект останется открытым, а если все нормально (т.е. нет ошибок) то просто запустится инсталлятор, а проект будет закрыт?

Чесно говоря я хотел, чтобы ты сам к этому пришел, ну ладно держи код:
Код: if (File.DoesExist("SETUP\\setup.exe")) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, false);
Application.Exit(0);
else
Dialog.Message("Ошибка!", "Инсталлятор не найден.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
end
Автор: Andreyrr
Дата сообщения: 29.11.2006 03:47
Спасибо за совет по поводу клавиатуры. Все работает.

Еще вопрос, на странице много объектов для ввода информации, как сделать чтобы при открытии страницы курсор располагался в нужном объекте ввода.
Автор: GOOSE
Дата сообщения: 29.11.2006 09:47
Andreyrr

Цитата:
как сделать чтобы при открытии страницы курсор располагался в нужном объекте ввода.

На вкладке On Show добавь строчку

Код: Page.SetFocus("имя_нужного_объекта");
Автор: GOOSE
Дата сообщения: 29.11.2006 17:02
tavria2

Цитата:
Маска ввода пропускает символы только первой половины кодовой таблицы [0-9] и [A-z]. IMHO с русским здесь - тупик

Тупик, кстати, не только с русским, но и немецким...
В свое время бился-бился, задолбал оффорум, но так и не решили эту проблему
Автор: NightW0lf
Дата сообщения: 30.11.2006 20:33
tavria2
У меня проблема! Почему-то из-за вот этого кода

Код:
if (File.DoesExist("SETUP\\setup.exe")) then
File.Run("SETUP\\setup.exe", "", "", SW_SHOWNORMAL, false);
Application.Exit(0);
else
Dialog.Message("Ошибка!", "Инсталлятор не найден!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
end
Автор: tavria2
Дата сообщения: 30.11.2006 23:59
NightW0lf
Цитата:
У меня проблема! Почему-то из-за вот этого кода...
Перестал работать вот этот код

А каким образом можно определить проблему, если ты не показываешь в каком месте делаешь вставку моего кода? В следующий раз приводи полный пример неработающего кода, а не набор отдельно работающих кусков. И еще хочу сказать, что использование Ctrl+C/Ctrl+V - дело хорошее, но прежде всего нужно разобраться с алгоритмом, чтобы знать что, куда вставлять. Если не понятны некоторые действия, то сначала попробуй разобраться сам, с помощью справки и примеров, ну а если никак, то спрашивай - поможем

Вот примерно твой код:
Код: -- Ф-ция установки программы
function Install()
if (File.DoesExist(cFileName)) then -- файл найден
File.Run(cFileName, "", "", SW_SHOWNORMAL, false); -- запуск инсталлятора без ожидания завершения
Application.Exit(0); -- выйти из проекта
else -- файл не найден
Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
end
end

cFileName = "SETUP\\setup.exe"; -- полное имя файла установки
search_reg_data = Registry.GetValue(........); -- читаем значение из реестра

if search_reg_data == "" then -- если в реестре нет записи
run_install = Dialog.Message("Установка", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if (run_install == IDYES) then
Install(); -- вызов ф-ции установки программы
end
else -- в реестре есть запись
run_install = Dialog.Message("Установка", "Игра уже установлена, хотите продолжить?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
if (run_install == IDYES) then
Install(); -- вызов ф-ции установки программы
end
end
Автор: NightW0lf
Дата сообщения: 01.12.2006 14:36
tavria2

Цитата:
В следующий раз приводи полный пример неработающего кода, а не набор отдельно работающих кусков.

Учту

Спасибо! То, что ты посоветовал все работает.
А возможно ли как-нибудь сделать так чтобы если одна копии “autorun.exe” уже запущена, то другую копию моего “autorun.exe” нельзя будет запустить?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Matrix Screensaver


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.