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

» Indigo Rose AutoPlay Media Studio

Автор: sjdb45
Дата сообщения: 05.11.2012 14:21
Zloy_Gelud
Спасибо, такой код работает!
Но я в добавок постарался совершить те-же действия для листбокса заменив код on preload


Код:
local tDirs = Folder.Find(_SourceFolder.."PROGRAMS", "*", false, nil);
if tDirs then
    for i = 1, #tDirs do
        ListBox.AddItem("ListBox1", String.Mid(tDirs[i], String.ReverseFind(tDirs[i], "\\", false) + 1, -1), tDirs[i]);
    elseif local tButtons = INIFile.GetValueNames("menu.ini", "CHECK");
if tButtons then
for n, sButtonName in pairs(tButtons) do
if INIFile.GetValue("menu.ini", "CHECK", sButtonName) == '0' then
ListBox.SetItemCheck("ListBox1", sButtonName, BST_UNCHECKED);
elseif INIFile.GetValue("menu.ini", "CHECK", sButtonName) == '1' then
ListBox.SetItemCheck("ListBox1", sButtonName, BST_CHECKED);
end
end
end
end
Автор: Zloy_Gelud
Дата сообщения: 05.11.2012 16:04
sjdb45 -- код для начала приведи в порядок.
Автор: sjdb45
Дата сообщения: 05.11.2012 18:10
Zloy_Gelud
Спасибо что не дал сам код, а то бы я вбил бы его на готовую, а так самому пришлось мозгу включать
Все работает!
Спасибо тебе ещё много раз за оказываемую помощь!
Жму крабу!
Автор: BASHKA123
Дата сообщения: 06.11.2012 22:45
Привет, я хочу, чтобы вы мне помогли с одной вещью!
У меня есть Button1 с кардиналами 259,267 и Button2 кардиналами -78,267, мне нужно, чтобы, когда я нажимал на Button1,он переместился на 633,267,а Button2 встал на его место плавно как анимация.И подскажите как менять скорость.
И есть еще одна вещь! У меня на другой странице Кнопка в ней написан сценарий (ну там будет то, если стоит флажок тамто), как переместить этот сценарий на другую страницу и выполнить его?
Автор: sjdb45
Дата сообщения: 07.11.2012 02:46
BASHKA123

Button1 on click

Код:
Button.SetPos("Button1", 633, 267);
Button.SetPos("Button2", 259, 267);
Автор: BASHKA123
Дата сообщения: 07.11.2012 09:48
Доброе утро! Я знаю как так их переместить.

Цитата:
Button.SetPos("Button1", 633, 267);
Button.SetPos("Button2", 259, 267);

Но как сделать чтобы это было плавно,ну чтобы было видно как они перемещаются.
Автор: Lexua
Дата сообщения: 07.11.2012 17:53
BASHKA123

Цитата:
Но как сделать чтобы это было плавно,ну чтобы было видно как они перемещаются.


В цикле исползуя for или while увеличивай или уменьшай значение.


Цитата:

local a=633;
while a > 259 do
a = a - 1;
Button.SetPos("Button1", a, 267);
end


Автор: BASHKA123
Дата сообщения: 07.11.2012 19:11
Спасибо большое!Все получилось,я так рад!!!!

Добавлено:
А как скорость убавить подскажи?
Автор: ra700
Дата сообщения: 08.11.2012 01:45
Умножь числа на К (во сколько раз нужно уменьшить скорость), а при вычислении позиции раздели на это же число К.
Автор: SabreFC
Дата сообщения: 09.11.2012 08:56
Если кому надо - переделал чуть форму для отправки сообщения (от GOOSE) по SMTP (используется бесплатный плагин для AMS)

На кнопку "Отправить" в OnClick

Код:
-- Обнуление предыдущих ошибок обработки
error = 0;
-- Получаем значения из полей ввода (у меня их 5 - ФИО, мыло, телефон, компания, сообщение)
-- ФИО
name1 = Input.GetText("Input1");
-- мыло
name2 = Input.GetText("Input2");
-- телефон
name3 = Input.GetText("Input3");
-- название компании
name4 = Input.GetText("Input4");
-- сообщение
name5 = Input.GetText("Input5");

-- Здесь делаем проверку, заполнено поле или нет (проверку для поле -компания- я не делал, при желании - легко добавить кусок кода)

if String.Length(name1) < 1 then
Dialog.Message("Ошибка!", "Поле -ФИО- не должно быть пустым! Заполните и повторите отправку!");
error = 1;
end
if String.Length(name2) < 1 then
Dialog.Message("Ошибка!", "Поле -e-mail- не должно быть пустым! Заполните и повторите отправку!");
error = 1;
end
if String.Length(name3) < 1 then
Dialog.Message("Ошибка!", "Поле -Телефон- не должно быть пустым! Заполните и повторите отправку!");
error = 1;
end
if String.Length(name5) < 1 then
Dialog.Message("Ошибка!", "Поле -Сообщение- не должно быть пустым! Заполните и повторите отправку!");
error = 1;
end

-- Если ошибок заполнения нет, то активируем плагин SMTP для отправки сообщения

if error~=1 then

-- Mail Properties

tblMailProperties = {};
-- Вместо TEST пишем, от кого хотим получать письма (поле From)
tblMailProperties.FromName = "TEST";
-- Вместо name2 пишем, с какого мыльника должны (якобы) приходить письма (поле FromEmail) или оставляем как есть - это хорошо для ответов юзеру, отправившему письмо
tblMailProperties.FromEmail = name2 ;
-- На какой e-mail отправлять письмо
tblMailProperties.To = "test@test.ru";

-- tblMailProperties.ReplayTo = "test@test.com";

-- Формируем BODY для письма (оно будет в текстовом формате, при желании - можно в html сделать)
tblMailProperties.TextBody = name1 .. "\r\n" .. name2 .. "\r\n" .. name3 .. "\r\n" .. name4 .. "\r\n" .. name5;

--tblMailProperties.HtmlBody = "<b>Test</b>";

-- tblMailProperties.CreateMHTMLBody = _SourceFolder.."\\AutoPlay\\Docs\\mhtDoc.htm";

-- Здесь формируем тему письма, которое нам придет на мыльник (в параметре tblMailProperties.To)
tblMailProperties.Subject = "Тут тема письма";

-- Копии писем отправлять по нижеуказанным адресам
-- tblMailProperties.CC = "Копия письма на это мыло";
-- tblMailProperties.BCC = "Скрытая копия на это мыло";

-- Приоритет письма
tblMailProperties.Importance = "high"; -- normal - low
-- Какой клиент отправляет почту (требуется для принимающей стороны)
tblMailProperties.Xmailer = "Microsoft Office Outlook 12.0";


-- Server Properties

tblServerProperties = {};
tblServerProperties.Server = "тут указываем адрес почтового сервера - mail.test.ru";
tblServerProperties.ServerPort = 25;

-- Использовать ли SSL
tblServerProperties.UseSSL = false; -- или true

-- Требуется ли аутентификация на SMTP сервере
tblServerProperties.Authenticated = true; -- или false
tblServerProperties.UserName = "user";
tblServerProperties.PassWord = "password";

-- Send Mail

result = SMTP.SendMail(tblMailProperties, tblServerProperties);



Dialog.Message("Спасибо, Ваше сообщение отправлено!", result, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: kaligula8
Дата сообщения: 12.11.2012 17:43
Всем привет !!! простите за тупняк, но подскажите начинающему, как сделать, чтобы при наведении курсора на картинку, она менялась на другую картинку, но при наследовала действие, которое несет первая картинка (например переход на др. страницу ) ?
Автор: bigbrain
Дата сообщения: 12.11.2012 18:04
1) Вставляешь картинку
2)В свойствах картинки пишешь на вкладке Script:
Пишешь в соответствующей вкладке
On click (действие по щелчку) - переход на страницу и что тебе еще нужно
On enter (действие при наведении курсора) - Image.Load("Image1", "AutoPlay\\Images\\image1.png");
On leave (действие когда убрали курсор) - Image.Load("Image1", "AutoPlay\\Images\\image2.png");

on enter - загружаешь новую картинку
on leave - возвращаешь старую
Автор: sjdb45
Дата сообщения: 14.11.2012 16:04
"REGEDIT /S myfile.reg"
как запустить рег файл при помощи AMS?
Может кто сталкивался?
Через оболочку Registry.CreateKey не подходит так-как в reg уйма прописей.
Автор: tavria2
Дата сообщения: 14.11.2012 21:59
sjdb45

Код: File.Run("regedit.exe", "/s C:\\myfile.reg", "", SW_SHOWNORMAL, false);
Автор: Gasetaa
Дата сообщения: 15.11.2012 00:49
[more] [more]
On Preload:
Page.StartTimer(100);

On Timer:
-- путь к файлу, который запускает игру
strRunGamePath = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\My Game", "Path", true).."\\Game.exe";
-- путь к инстоллятору игры
strActPath = _SourceFolder.."\\setup.exe";

-- если игра установлена
if (Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\My Game") == true) then
-- меняем на путь к деинстоллятору
strActPath = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Game_is1", "UninstallString", true);
-- активируем кнопку "Запустить"
Button.SetEnabled("Button1", true);
-- переименовываем кнопку "Установить" на "Удалить"
Button.SetText("Button2", "Удалить");
end

On Click кнопки "Запустить":
File.Run(strRunGamePath, "", "", SW_SHOWNORMAL, false);

On Click кнопки "Установить"("Удалить"):
File.Run(strActPath, "", "", SW_SHOWNORMAL, false);
[/more]
Никак не выходит сделать кнопку "запустить" неактивной, когда игра неустановлена по скрипту выше
А вот реестр:
[more]
"Path"="D:\\Games\\Proba"
"ExePath"="D:\\Games\\Proba\\Game.exe"
[/more] [/more]
Автор: sjdb45
Дата сообщения: 15.11.2012 03:36
[q][/q]
Всё хорошо, но мне нужен был запуск с _SourceFolder, вот когда ставлю такой код,

Код:
File.Run("regedit.exe", "/s _SourceFolder .."\\Setup\\myfile.reg", "", SW_SHOWNORMAL, false);
Автор: lerik2703
Дата сообщения: 15.11.2012 06:47
sjdb45

Цитата:
может чё ни так делаю..

может так с переменной _SourceFolder?


Код: File.Run("regedit.exe", "/s ".._SourceFolder .."\\Setup\\myfile.reg", "", SW_SHOWNORMAL, false);
Автор: bigbrain
Дата сообщения: 15.11.2012 07:11
Ты в какой операционной системе это все делаешь? Если в вин виста, 7 или 8, то может быть нужно делать запрос на повышение прав (UAC).
Или попробуй сразу в настройках проекта поставить, что права администратора нужны (вроде видел такое).
Для теста можешь вручную запустить от имени администратора (в контекстном меню выбрать при запуске программы) и посмотреть.
Автор: Zloy_Gelud
Дата сообщения: 15.11.2012 09:01
sjdb45
На случай, если в пути к REG-файлу есть пробелы.

Код: File.Run("regedit.exe", "/s \"".._SourceFolder .."\\Setup\\myfile.reg\"", "", SW_SHOWNORMAL, false);
Автор: sjdb45
Дата сообщения: 15.11.2012 12:14
Спасибо всем! как раз то, что и было нужно!
Вот кто мне дураку сможет объяснить как найти выход с прогресс-баром.
Значит так, после каждого обработанного цикла установки программ вставляю в конце этот код:

Код:
Input.SetText("progressbar", INIFile.GetValue(sWorkDir.."\\SETUP.INI", "SETUP", "PROGRESS"));
Автор: lerik2703
Дата сообщения: 15.11.2012 15:04
sjdb45
лично я не понял как ты хочешь продвигать Прогресс бар?
разве что получить значение из строки "Завершено = 2%" ?
Автор: sjdb45
Дата сообщения: 15.11.2012 15:22
В Button1 этот код.

Код:
local tChecked = ListBox.GetChecked("ListBox1", BST_CHECKED);
if tChecked then
for i = 1, #tChecked do
local sWorkDir = ListBox.GetItemData("ListBox1", tChecked[i]);
_getArgs = function (s)
assert(type(s) == 'string')
local tRet = {};
s = String.TrimLeft(s, nil);
local nPos = String.Find(s, ' ');
if (nPos ~= -1) then
return String.Mid(s, 1, (nPos - 1)), String.Mid(s, (nPos + 1), -1);
end
return s;
end

File.RunEx = function (s)
local sFileName, sArgs = _getArgs(s);
if sArgs then
File.Run(sWorkDir.."\\"..sFileName, sArgs, "", SW_SHOWNORMAL, true);
else
File.Run(sWorkDir.."\\"..sFileName, "", "", SW_SHOWNORMAL, true);
end
end

local sRun1 = INIFile.GetValue(sWorkDir.."\\SETUP.INI", "SETUP", "INSTALL");
if sRun1 ~= '' then
File.RunEx(sRun1);
end
Автор: simply2
Дата сообщения: 15.11.2012 15:25
Помогите!

Есть кнопка проигрывания Video, но не могу никак прикрутить Progress1. Не понимаю как туда его всунуть.

Использую этот код (может и не правильный)

Код: callback = function (...)
local nPer = Math.Round(arg[2] * 100 / arg[3]);
Progress.SetCurrentPos("Progress1", nPer);
return true;
end
Автор: lerik2703
Дата сообщения: 15.11.2012 15:31
sjdb45
ясно только если пользователь в лист-боксе выбрал допустим только 15 программ как скрипт должен их расценить как 15 % или как все 100 %?
Автор: Gasetaa
Дата сообщения: 15.11.2012 15:35
[more] On Preload:
Page.StartTimer(100);

On Timer:
-- путь к файлу, который запускает игру
strRunGamePath = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\My Game", "Path", true).."\\Game.exe";
-- путь к инстоллятору игры
strActPath = _SourceFolder.."\\setup.exe";

-- если игра установлена
if (Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\My Game") == true) then
-- меняем на путь к деинстоллятору
strActPath = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Game_is1", "UninstallString", true);
-- активируем кнопку "Запустить"
Button.SetEnabled("Button1", true);
-- переименовываем кнопку "Установить" на "Удалить"
Button.SetText("Button2", "Удалить");
end

On Click кнопки "Запустить":
File.Run(strRunGamePath, "", "", SW_SHOWNORMAL, false);

On Click кнопки "Установить"("Удалить"):
File.Run(strActPath, "", "", SW_SHOWNORMAL, false);
[/more]
Никак не выходит сделать кнопку "запустить" неактивной, когда игра неустановлена по скрипту выше
А вот реестр:
[more]
"Path"="D:\\Games\\Proba"
"ExePath"="D:\\Games\\Proba\\Game.exe" [/more]
Автор: lerik2703
Дата сообщения: 15.11.2012 15:39
simply2

Цитата:
Использую этот код (может и не правильный)

и что это за код?? действие Video.Play не имеет вызова обратной функции!
Gasetaa

Цитата:
Никак не выходит сделать кнопку "запустить" неактивной, когда игра неустановлена по скрипту выше

используй дополнительную запись в реестр!
Автор: sjdb45
Дата сообщения: 15.11.2012 15:45
lerik2703
Да я понял.
Скрипт должен соблюдать строгий нумеровой порядок, если выбрана 45 я программа из 100 то прогресс бар должен так же и показать 45 а не 100, а после завершения установки перед выходом из AMS можно вбить любым доступным методом в прогресс бар 100 , что мол всё установлено.
Автор: lerik2703
Дата сообщения: 15.11.2012 16:22
sjdb45

Цитата:
порядок, если выбрана 45 я программа из 100 то прогресс бар должен так же и показать 45 а не 100,

хорошо если 45 и 25 ну ещё 50?
возможно так?

Код: if sRun1 ~= '' then
File.RunEx(sRun1);
Progress.SetCurrentPos("Progress1",tChecked[i]);
end
Автор: sjdb45
Дата сообщения: 15.11.2012 16:57
lerik2703
На самом деле этот код не должен быть сложным ибо он должен всего на всего продвигать прогресс начиная с 1 до 100.
Но если учитывать мои крутые знания то он сложный для меня.
Если скрипт влез в первую папку с установщиком и установил setup.exe то дальше скрипт должен обратиться к прогресс бару мол двигайся вперед. Далее скрипт лезет в следующую папку устанавливает что в ней имеется и снова идёт к прогрессбару мол двигайся вперед.
Просто скрипту нужно подсчитать сколько приложений имеются в листбоксе и поделить их продвижение.
Я не силён в скриптах, но код который выкладывал уважаемый tavria2 пару страниц назад наверняка похож своим смыслом к этим действиям.

Код:
function escapeme()
unch = ListBox.GetCount("ListBox1");
if (unch > 0) then
Progress.SetRange("Progress1", 0, unch);
for nIdx = 1, unch do
name = ListBox.GetItemText("ListBox1", nIdx);
if (name ~= "") then
ListBox.SelectItem("ListBox1", nIdx);
setup();
ListBox.SetItemCheck("ListBox1", nIdx, BST_CHECKED);
Progress.StepIt("Progress1");
end
end

return true
else
return false
end
end
Автор: Gasetaa
Дата сообщения: 15.11.2012 17:35
lerik2703
а какую? Как вообще должен выглядеть реестр для такого скрипта?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: память не может быть written


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