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

» Autoplay Media Studio

Автор: dallas page
Дата сообщения: 27.11.2011 21:43
Вем доброго времени суток. Подскажите плиз, есть Sfx архив, который после распаковки запускает бантик 111.bat. Как сделать так, чтобы программа, после того как батник закончил свое действие, вывела dialog. Типа функции file.run (wait for return). Заранее спасибо.

Объясню зачем так все сложно. Просто я столкнулся уже не в первый раз с такой проблемой, что если бантик запускать на прямую функцией file.run, бантик не срабатывает. А если запустить в ручную или через Sfx архив все работает. Если в начале такой батник запустить вручную, то потом можно на прямую использовать команду file.run. Но через некоторый промежуток времени опять не срабатывает. Вот я и решил, что пусть батник запускается через Sfx архив, а программа отслеживает, когда он завершится.
Автор: big gnome
Дата сообщения: 27.11.2011 22:28
Zloy_Gelud, при попытке вставить один из скриптов в проект все время выдает ошибку в первой строке.
http://s45.radikal.ru/i110/1111/f2/d3f0f31f4fb0.jpg
Автор: lerik2703
Дата сообщения: 27.11.2011 22:49
big gnome
Видимо ты код из глобальных функций не скопировал!
Автор: Robby
Дата сообщения: 27.11.2011 23:02
Zloy_Gelud

Цитата:
Сложновата задачка. Но, если поможет, то могу скинуть код, который находит все возможные варианты последовательностей чисел из массива, сумма которых равна заданной, т.е. без отклонений.

Конечно скинь, я вообще ничего не смог придумать, задачка действительно сложная, хоть вроде математически все расписано, а вот как реализовать??? Тут бы мозг программиста помог
Автор: big gnome
Дата сообщения: 27.11.2011 23:04

Цитата:
Видимо ты код из глобальных функций не скопировал!

Это как?
Я скопировал объект "Plagin1" и скрипт на страницу в раздел "On Show"
Автор: Robby
Дата сообщения: 27.11.2011 23:08
Zloy_Gelud
А можно сделать чтоб было меньше или равно, меьше без лимита.
Автор: lerik2703
Дата сообщения: 27.11.2011 23:10
big gnome

Цитата:
Это как?

Project > Global Function
Автор: Robby
Дата сообщения: 27.11.2011 23:12
dallas page
Попробуй использовать для запуска батника Shell.Execute
Автор: big gnome
Дата сообщения: 27.11.2011 23:25
Zloy_Gelud, lerik2703 большое спасибо, все получилось
Автор: dallas page
Дата сообщения: 28.11.2011 06:13

Цитата:
Попробуй использовать для запуска батника Shell.Execute


Не помогло...
Автор: Zloy_Gelud
Дата сообщения: 28.11.2011 07:15
Robby
[more]
Код: Debug.ShowWindow(true);

sum = 14; -- макс. сумма
a = {4,5,6,7}; -- таблица значений
b = {};
n = #a;
for i = n, 1, -1 do
b[1] = i;
h = 1;
k = sum - a[i];
f = false;
repeat
for j = b[h] - 1, 1, -1 do
if a[j] <= k then
h = h + 1;
b[h] = j;
k = k - a[j];
end
if k == 0 then
for m = 1, h do
Debug.Print(a[b[m]]);
k = k + a[b[h]];
h = h - 1;
Debug.Print("\r\n");
end
Debug.Print("\r\n");
end
end
f = true;
for m = h, 2, -1 do
if b[m] ~= h - m + 1 then
f = false;
b[m] = b[m] - 1;
h = m;
k = sum;
for z = 1, h do
k = k - a[b[z]];
break;
end
end
end
until f
end
Автор: Robby
Дата сообщения: 28.11.2011 07:19
dallas page
Если в WorkingFolder указать путь по которому находиться батник? Этот парметр имеют обе команды и Shell.Execute и File.Run. Все батники не работают или какой-то особенный?


Добавлено:
Zloy_Gelud
Спасибо. Завтра попробую, сегодня уже не успеваю, на работу надо уходить.
Автор: Stalkersof
Дата сообщения: 28.11.2011 09:27
Имхо.
Ну не знаю на сколько это профессионально использовать батники. Т.е технологию устаревшую еще лет 20 назад. В Высокоуровневом языке программирования. Наверно все таки пытаться сделать то что есть в батнике средствами AMS. И использовать батники только в тех случаях когда это невозможно сделать в AMS как дополнение.
Автор: big gnome
Дата сообщения: 28.11.2011 11:12

Цитата:
Скажите, можно ли в АМS 8 реализовать функцию поиска по как на сайте?
К примеру, есть папка с фотографиями. В поле "поиск" вводим название какой либо фото - открывается окошко с ссылкой на это фото.
Может быть можно сделать поиск по ключевым словам?


Автор: davidgray
Дата сообщения: 28.11.2011 13:22
Zloy_Gelud

Я всё по поводу обоев на рабочий стол. Если сделать через слайд шоу
, если кликаешь по картинке которая сейчас отображается, и этот код применяется к этой картинке. И текущая картинка устанавливается фоном на рабочий стол.

этот код:

local tProp = Image.GetProperties(this);
local sImagePath = tProp.ImageFile;

Registry.SetValue(HKEY_CURRENT_USER, "Control Panel\\Desktop", "Wallpaper", sImagePath, REG_SZ);

-- Расположение: "По центру"
Registry.SetValue(HKEY_CURRENT_USER, "Control Panel\\Desktop", "TileWallpaper", "0", REG_SZ);
Registry.SetValue(HKEY_CURRENT_USER, "Control Panel\\Desktop", "WallpaperStyle", "0", REG_SZ);

local sAppPath = Shell.GetFolder(SHF_APPLICATIONDATA_LOCAL).."\\Microsoft";
local sRet = WinApi.ImageConvertTo(sImagePath, sAppPath.."\\_wallpaper.bmp");
if sRet == "OK" then
DLL.CallFunction("user32.dll", "SystemParametersInfoA", "20,0,\""..sAppPath.."\\_wallpaper.bmp\",1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
end

Автор: Zloy_Gelud
Дата сообщения: 28.11.2011 14:00
big gnome

Цитата:
Скажите, можно ли в АМS 8 реализовать функцию поиска по как на сайте?
К примеру, есть папка с фотографиями. В поле "поиск" вводим название какой либо фото - открывается окошко с ссылкой на это фото.
Может быть можно сделать поиск по ключевым словам?

Повесь на кнопку Поиска:

Код: local sSearch = Input.GetText("Input1");
if String.TrimLeft(sSearch, nil) ~= "" then
g_Files = File.Find("C:\\MyDir", sSearch, false, false, nil, nil);
end
Автор: ubian
Дата сообщения: 28.11.2011 15:47
Есть вопросик. Как бы мне сделать например в INI файле (INS-тип)

Код:
[Animation]
Number=3
Frame_1=frame1.png
Frame_1_time=500
Frame_2=frame2.png
Frame_2_time=2500
Frame_3=frame3.png
Frame_3_time=500
FinishAction=DefaultImage()
Автор: Zloy_Gelud
Дата сообщения: 28.11.2011 16:01
ubian
Объясни внятно, плиз, что должно быть в INI файле, а что должен выполнять код программы.
Автор: ubian
Дата сообщения: 28.11.2011 18:53
Код должен применять переменные, которые написаны в INI файле. Но переменных может быть определеное количество. Это определяет поле Number. К примеру если Number=1 тогда код присваевает переменные Frame_1=... и Frame_1_time=... А если Number=2 тогда
Frame_1=...
Frame_1_time=...
Frame_2=...
Frame_2_time=...
И так далее. Максимальное значение Number=999

Запарился уже с долбаным движком...
Автор: Zloy_Gelud
Дата сообщения: 28.11.2011 19:39
ubian

Код: local nNumb = tonumber(INIFile.GetValue("C:\\action.ini", "Animation", "Number"));
local sCode = "";
for i = 1, nNumb do
sCode = sCode .. "Frame_"..i .. " = \"" ..INIFile.GetValue("C:\\action.ini", "Animation", "Frame_"..i) .. "\"; ";
sCode = sCode .. "Frame_"..i.."_time = " .. INIFile.GetValue("C:\\action.ini", "Animation", "Frame_"..i.."_time") .. "; ";
end

assert(loadstring(sCode))();

-- test
Dialog.Message("Notice", Frame_1 .."\r\n"..Frame_3_time);
Автор: ubian
Дата сообщения: 29.11.2011 15:51
Ага. И еще по подобному вопросу. Создаю изображение Page.CreateObject (или типа того), как сделать авто уменьшение изображение, но с сохранением пропорций. 590 (X, Widht) X 485 (Y, Height).
Т.е. например у создаваемого изображения размер 1000х500 программа находит максимальное разрешение изображений в ограничениях и присваивает изображению нужный размер - 590х286 (Примерно посчитал, может быть неточно)

Добавлено:
И еще. На счет той функции с INI файлом. Как мне после ее завершения вызывать один и тот же таймер с временем переменной Frame_#_time.
Автор: Vadim021X
Дата сообщения: 29.11.2011 20:28
Быстрый вопрос:
Как текст из Label1 на 1 странице скопировать в Label1 на 2 странице, не пользуясь буфером?

Добавлено:
как бы перенести текст
Автор: ubian
Дата сообщения: 29.11.2011 20:32
Vadim021X,

Код:
--For Label1
local LabelText = Label.GetText("Label1");
--For Label2
Label.SetText("Label1", LabelText);
LabelText = nul
Автор: Vadim021X
Дата сообщения: 29.11.2011 20:42
Что то не получается...
Что куда вставлять?
Автор: ubian
Дата сообщения: 29.11.2011 20:55
Ну например в Input на первой странице On Click, а на второй On Preload/On Show.
Как хочешь. Там две части, разделены сомментариями
Для Input

Код:
local LabelText = Label.GetText("Label1");
Автор: lerik2703
Дата сообщения: 29.11.2011 22:18
ubian

Цитата:
local LabelText = Label.GetText("Label1");

локальная переменная действует только в событии где была вызванна!

Цитата:
Local Variables
The global nature of the scripting engine means that a variable will retain its value throughout your entire project. You can, however, make variables that are non-global, by using the special keyword “local.” Putting the word “local” in front of a variable assignment creates a variable that is local to the current script or function.

Автор: ubian
Дата сообщения: 29.11.2011 22:24
Тю. Туплю уже... Нельзя работать с несколькими языками программирования....

Код:
--First
TextLabel = Label.GetText("Label1");
--Second
Label.SetText("Label2", TextLabel);
TextLabel = nul

Автор: lerik2703
Дата сообщения: 29.11.2011 22:28
ubian

Цитата:
TextLabel = nul

тогда уж nil чтобы очистить переменную)
Автор: ubian
Дата сообщения: 30.11.2011 12:17
Каапец я туплю...

Код:
--First
TextLabel = Label.GetText("Label1");
--Second
Label.SetText("Label2", TextLabel);
TextLabel = nil
Автор: AVM185
Дата сообщения: 30.11.2011 16:50
Zloy_Gelud, lerik 2703? Здравствуйте,помогите пожалуйста, у меня такой вопрос как сделать запись в файл из результатов теста
Paragraph.SetText("Paragraph1", "Вы закончили тестирование !\r\n\r\nПравильных ответов "..tbScore.Correct.." из "..nQtA..", что составляет "..tbScore.Score.."%.");

в файл TextFile.WriteFromString("C:\\MyFile.txt", "результаты теста", false);

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

Предыдущая тема: Media Player Classic - Home Cinema (MPC-HC)


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