Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Indigo Rose AutoPlay Media Studio (часть 1)

Модерирует : gyra, Maz

Widok (03-09-2007 23:10): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

maykop3000



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для ленивых и нетерпеливых обзор темы aka FAQ
 
Где почитать:
------------------------
Для начала читаем статьи: тут раз илитут раз и два и три
Скриптовый язык LUA (англ) На русском здесь,  еще тут и  тут
Видео-уроки (анг)  
 
 
Где поживиться:
----------------------------
Видео-уроки (Flash) от производителя (англ)
Тоже официальное видео (англ)
Бесплатные шаблоны (маски) для окон ваших приложений (англ)
"Подарки к Рождеству" на оффсайте (англ)
Плагин LuaCOM (англ)
Примеры для начинающих (англ)
Неплохие примеры, библиотеки (англ)
Еще примеры, один из самых активных юзеров на оффоруме (англ)
Плагины и библиотеки (не все free) (англ)
Еще плагины (англ)
Собрание уроков (иногда с русскими объяснениями)  
 
Где найти ответы на вопросы:
------------------------------------
Проблема с путями при создании приложения .EXE и ресурсами на CD от Reineke
Запуск файлов из Web объекта
Реализация Play-листов для Винампа от BOObastis
Виды путей, используемых в AMS от GOOSE
Таблица дисков системы от Lexua
Вывод HTML отчета с использованием SQLite плагина от IndigoRose
Используем таймер
Полноэкранный режим для приложения
Показ\скрытие объектов по действиям мыши
Последовательный запуск нескольких файлов
Запуск WinRARa для распаковки архивов от Reineke
Изменяем скроллинг ListBox-у от GOOSE
Изменяем курсор в приложении от GOOSE
Перенос строки во всплывающей подсказке от GOOSE
Изменяем иконку приложения от Lexua
Включение\отключение фоновой музыки кнопкой
Отправка данных из форм по e-mail от GOOSE
Запускаем экзешник по информации из реестра от Lexua
Утилита для защиты авторанов
Из окна в полноэкранный режим и обратно
Для тех, у кого русский проект с "кракозяблами"
Выделение и копирование в буфер текста\части текста от GOOSE
Работаем с запароленными архивами от GOOSE
Работаем с объектом дерева от GOOSE
Проигрвывание MP3 из ListBox-а подряд от UMode
Простой пример бегущей строки от GOOSE
И более красивый от tavria2
Ряд вопросов и ответов по созданию меню для DVD от tavria2
 
------------------------
Шапка исправлена. Актуально на 3.08.06 GOOSE
------------------------
 
Разработчиков autorun'ов и графических дизайнеров приглашаем посетить проект шаблонов для Autoplay Media Studio:
http://ams-templates.com

Всего записей: 544 | Зарегистр. 24-09-2002 | Отправлено: 23:32 05-12-2002 | Исправлено: Maz, 12:33 25-09-2017
Andy B69

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как получить из autorun.exe проэкт файл, чтобы сделать обновления, или нужно делать проэкт по новой?

Всего записей: 1 | Зарегистр. 11-05-2007 | Отправлено: 18:13 11-05-2007
sly33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
 

Цитата:
Читай справку, Zip.Extract ничего не возвращает, значит его нельзя использовать в проверке на успешность операции, используй Application.GetLastError.

 
Оно "возвращает последний ошибочный кодекс" и "Используется, чтобы проверить, встречалась ли ошибка, выполняя последнее действие". Вот часть кода:
 
result = File.Run(sFilePath, "", "", SW_SHOWNORMAL, false);
 
end
 
data1 = "AutoPlay\\Docs\\system\\Rus\\TU2007TrialEN.zip"  
Zip.Extract(data1, {"*.*"}, "C:\\My Folder4", true, true, "", ZIP_OVERWRITE_NEVER, nil);
if data1 then
File.ExploreFolder("C:\\My Folder4", SW_SHOWNORMAL);
end
data2 = "AutoPlay\\Docs\\system\\Rus\\Sequoia1_3XPInstall.zip"
Zip.Extract(data2, {"*.*"}, "C:\\My Folder5", true, true, "", ZIP_OVERWRITE_NEVER, nil);
if data2 then
File.ExploreFolder("C:\\My Folder5", SW_SHOWNORMAL);
end
 
на двойной клик в ЛистБоксе.(Малость тяжеловесно, но для меня - неплохо - оно ж работает).  
 
error = Application.GetLastError();
if (error ~= 0) then
А вот чего then чтобы при каждом клике не получать все папки?

Всего записей: 23 | Зарегистр. 25-04-2007 | Отправлено: 21:31 11-05-2007
GOOSE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sly33
Application.GetLastError(); проверяет "успешность" последнего действия.
Соответственно, нужно применять там, где требуется подтвердить успешность...
После then выведи например диалоговое окно с сообщением, что при распаковке архива произошла ошибка и предложи юзеру варианты
 
 


----------
AutoPlay Media Studio по-русски!
Русский хелп AutoPlay Media Studio

Всего записей: 903 | Зарегистр. 17-10-2001 | Отправлено: 22:29 11-05-2007
sly33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GOOSE
 
А так про сообщение-то понятно, а нужно чтоб при клике на одну строку выдавалась одна папка,которая ей соответствует, а при File.Run вообще папок не было.
 

Всего записей: 23 | Зарегистр. 25-04-2007 | Отправлено: 22:38 11-05-2007 | Исправлено: sly33, 01:09 12-05-2007
GOOSE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sly33

Цитата:
error = Application.GetLastError();  
if (error ~= 0) then  
А вот чего then чтобы при каждом клике не получать все папки?

Я ничего не понял.
В этом коде идет проверка на ошибку последнего действия (оно, кстати вот: File.ExploreFolder("C:\\My Folder5", SW_SHOWNORMAL);)
И чего мы тут проверяем???
Дальше:
Ты задаешь жестко путь в data1 и data2, потом запускаешь распаковку, а потом, через условие, открываешь папку в  проводнике...
Ты можешь эту логику объяснить???
А File.Run(sFilePath, "", "", SW_SHOWNORMAL, false); у тебя вообще в начале...
А зачем после него стоит end????
Пока у тебя нет получения выделенной строки, у тебя и будет отрабатывать весь этот код, с первой строки до последней...
Если хочешь получить помощь, формулируй вопросы конкретнее, и не надо больше "кусков кода" из которых без стакана нифига не понятно...


----------
AutoPlay Media Studio по-русски!
Русский хелп AutoPlay Media Studio

Всего записей: 903 | Зарегистр. 17-10-2001 | Отправлено: 23:14 12-05-2007
sly33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GOOSE
 
Забудем про Application.GetLastError. Ситуация такая - в одном ЛистБоксе и экзешники и архивы (просто для некоторых программ нужен не один Rus.exe , а несколько файлов, сответственно они лежат в одной папке и сжаты в Zip .) Потому я на Double_Click делаю и File.Run и Zip.Extract. Ну а при том что я наваял при клике на одной строке открываются и все другие окна.
Сейчас у меня код выглядит так  
 
tSelected = ListBox.GetSelected("ListBox2");
if tSelected then
for nTableIndex, nListBoxIndex in tSelected do
 
sFilePath = ListBox.GetItemData("ListBox2", nListBoxIndex);
result = File.Run(sFilePath, "", "", SW_SHOWNORMAL, false);
 
end
tFilePath = String.SplitPath(sEXEFileName);  
 
_sEXEFileName = tFilePath.Drive..tFilePath.Folder..tFilePath.Filename..".zip";  
 
target_folder = Dialog.FolderBrowse("Select a Folder", "C:\\");
 
 
-- Check to see if the user cancelled or an error occurred.
if (target_folder ~= "CANCEL") and (target_folder ~= "") then
    -- Gets a list of the contents of a zip file.
    zip_contents = Zip.GetContents("AutoPlay\\Docs\\system\\Rus\\TU2007TrialEN.zip", true);
 
    -- Get the error code of the last action.
    error = Application.GetLastError();
 
    -- If an error occurred, display the error code message.
    if (error ~= 0) then
        Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
    else
        -- Take the table and turn it into a string with newlines for displaying.
        zip_contents_display = Table.Concat(zip_contents, "\r\n", 1, TABLE_ALL);
 
        -- Ask the user if they are sure they would like to unzip the contents.
        result = Dialog.Message("Information", "The following files will be unzipped:\r\nClick the Cancel button to abort the process.\r\n\r\n"..zip_contents_display, MB_OKCANCEL)
 
        -- If the user clicked Ok, unzip the files.
        if (result == IDOK) then
            -- Show the status dialog.
            StatusDlg.Show();
            -- Extract the contents of the Zip file.
            Zip.Extract("_sEXEFileName", {"*.*"}, target_folder, true, true, "", ZIP_OVERWRITE_NEVER, nil);
 
            -- Check the error code for the last action.
            error = Application.GetLastError();
 
            -- Hide the status dialog.
            StatusDlg.Hide();
 
            -- If an error occurred, display the error code message.
            if (error ~= 0) then
                Dialog.Message("Errror", tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
            else
                Dialog.Message("Success", "The unzipping was successful.", MB_OK, MB_ICONINFORMATION);
            end
        end
    end
end
 
   Всё здорово, но это только один Zip архив ,а их несколько. Так что я пока толкусь на одном месте. Если несложно подскажите как решить эту проблемку.

Всего записей: 23 | Зарегистр. 25-04-2007 | Отправлено: 00:04 13-05-2007 | Исправлено: sly33, 00:12 13-05-2007
sly33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашёл очень простое решение и вроде всё работает так как хотелось
 
 
tSelected = ListBox.GetSelected("ListBox2");
if tSelected then
for nTableIndex, nListBoxIndex in tSelected do
sFilePath = ListBox.GetItemData("ListBox2", nListBoxIndex);
result = File.Run(sFilePath, "", "", SW_SHOWNORMAL, false);
sEXEFilePath = ListBox.GetItemData("ListBox2", nListBoxIndex);
        
        sEXEFileName = ListBox.GetItemText("ListBox2", nListBoxIndex);
        
        tFilePath = String.SplitPath(sEXEFilePath);  
sTXTFilePath = tFilePath.Drive..tFilePath.Folder..tFilePath.Filename..".zip"  
        end
end
 
 
Shell.Execute(sTXTFilePath, "explore", "", "", SW_SHOWNORMAL);

Всего записей: 23 | Зарегистр. 25-04-2007 | Отправлено: 16:27 13-05-2007
GOOSE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чесс слово, даже не смотрел, но раз работает - молодец.
В предидущих постах у тебя была логическая ошибка: сначала ты получал динамический путь в переменной (смотря какой пункт выбран в листбоксе), а на распаковку прописывал жестко путь. Причем это было подряд. Вот тебе и ответ
 
Добавлено:
ЗЫ Еще раз прошу: пользуйся возможностями форума по форматированию сообщений! Читать очень сложно...

----------
AutoPlay Media Studio по-русски!
Русский хелп AutoPlay Media Studio

Всего записей: 903 | Зарегистр. 17-10-2001 | Отправлено: 21:12 13-05-2007
DenVl



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function Resize()
tblObjects = Page.EnumerateObjects();
    if (tblObjects ~= nil) then
        for index, sObject in tblObjects do
            Object = _tblObjectType[Page.GetObjectType(sObject)];
            local m_PosXR = ?.GetPos(sObject).X / Page.GetSize().Width;
        end
    end
end

 
Object возвращает имя объекта (Button, Label, Paragraph, и т.д.) в зависимости от его типа (0, 1, 2, и т.д.).
А вот собственно и проблема: куда и как этот Object прикрутить, чтоб я мог получить значение m_PosXR.
Может уже кто-нидь сталкивался с этим..? а то уже пар из ушей идет..

Всего записей: 58 | Зарегистр. 01-07-2006 | Отправлено: 01:09 14-05-2007 | Исправлено: DenVl, 01:27 14-05-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenVl

Цитата:
А вот собственно и проблема: куда и как этот Object прикрутить, чтоб я мог получить значение m_PosXR.

Ты наверное хотел сделать что-то типа макроподстановки:  local m_PosXR = Object.GetPos(sObject).X / Page.GetSize().Width; или local m_PosXR = Object..".GetPos(sObject).X / Page.GetSize().Width;"?!  
AMS не поддерживает макро подстановку, по этому нужно либо описывать действия для каждого названия объекта в отдельности, что делает код громоздким и неудобным, либо пойти в обход, т.е. создать альтернативу макроподстановки.
 
Вот собственно алтернатива для твоего случая:(исправленно)
Код:
function Macro(cScript)
    tProp = {Width = 0, Height = 0}; -- св-ва создаваемого объекта
    Page.CreateObject(OBJECT_HOTSPOT, "Macro", tProp); -- создаем невидимый объект HOTSPOT (можно любой другой)
    Page.SetObjectScript("Macro", "On Click", cScript); -- записываем скрипт в "On Click" объекта "Macro"
    Page.ClickObject("Macro"); -- выполняем скрипт
end
 
function Resize()  
tblObjects = Page.EnumerateObjects();  
    if (tblObjects ~= nil) then  
        for index, sObject in tblObjects do  
            Object = _tblObjectType[Page.GetObjectType(sObject)];  
            cScript = "m_PosXR = "..Object..".GetPos(\""..sObject.."\").X / Page.GetSize().Width;";
            Macro(cScript); -- выполняем скрипт  
        end  
    end  
end  

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 11:30 14-05-2007 | Исправлено: tavria2, 01:40 16-05-2007
Avandom

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте! Скажите пожалуйста как мне осуществить вот что..
К примеру у меня две страницы. На первой - объект Input и кнопка. На второй объект Paragraph.
Мне необходимо, чтобы например, на первой странице в Input вводилось слово, а при переходе на вторую страницу, в Paragraphe оно отображалось.
Делаю так: в глобальных функциях пишу
name = Input.GetText("Input1");
а на второй странице в свойствах OnPreload пишу
text = name;
Paragraph.SetText("Paragraph1", "Здравствуй "..text" Ты .....");
 
Подскажите как быть?

Всего записей: 37 | Зарегистр. 11-05-2007 | Отправлено: 23:41 14-05-2007
DenVl



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
У меня после выполнения скрипта m_PosXR возращает вот такую строчку: Label.GetPos(sObject).X / Page.GetSize().Width;, а мне надо чтоб m_PosXR возвращало число, т.е вместо sObject подставлялось к примеру "Label1" а затем вычислялось m_PosXR... Как с этим справиться?

Всего записей: 58 | Зарегистр. 01-07-2006 | Отправлено: 02:02 15-05-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenVl
Sorry, это я напортачил с двойными кавычками. См. исправленный код выше.

Avandom

Цитата:
Делаю так: в глобальных функциях пишу  
name = Input.GetText("Input1");  

Код глобальных ф-ций автоматически выполняется только до загрузки страниц проекта, а в этот момент у тебя в "Input1" еще ничего нет. Выполняй свой код в событии On Click кнопки перехода на вторую страницу. Строка кода перехода на вторую страницу должна быть последней.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 10:19 15-05-2007 | Исправлено: tavria2, 10:48 15-05-2007
sly33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, новая проблема: Есть программа, для неё видеоуроки( кнопка "Видеоуроки"-> в ЛистБоксе список видео). Как бы попроще организовать просмотр видео?

Всего записей: 23 | Зарегистр. 25-04-2007 | Отправлено: 19:02 15-05-2007
Avandom

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Спасибо tavria2 - все получилось.
Подскажите вот что - У меня выходит Диалоговое окно Dialog.Message типа MB_OK. Так вот можно ли для него установить Позицию??? Чтобы оно например не в центре появлялось, а с координатами Х = 0, У = 0. Или нужно создавать другое собственное СВОЕ окно, а то это же идет от родительского и получится, что оно будет принимать значения главного  окна программы?

Всего записей: 37 | Зарегистр. 11-05-2007 | Отправлено: 23:15 15-05-2007 | Исправлено: Avandom, 01:04 16-05-2007
DenVl



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
А терь ругается на то, что sObject должен быть в кавычках, потому что Page.ClickObject("Macro") пытается выполнить такой код m_PosXR = Button.GetPos(Button1).X / Page.GetSize().Width;, а Button1 должен быть в кавычках  

Всего записей: 58 | Зарегистр. 01-07-2006 | Отправлено: 01:29 16-05-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenVl

Цитата:
А терь ругается на то, что sObject должен быть в кавычках

Мда, что-то я не внимательный стал  
Код исправил.

Avandom

Цитата:
Так вот можно ли для него установить Позицию???

Нельзя.

Цитата:
Или нужно создавать другое собственное СВОЕ окно

AMS не поддерживает создание окон.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 01:42 16-05-2007 | Исправлено: tavria2, 01:56 16-05-2007
DenVl



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2 спасиб те огромное!

Всего записей: 58 | Зарегистр. 01-07-2006 | Отправлено: 02:27 16-05-2007
sly33

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как просматривать видео понял, но есть вопрос - на кнопку OnClick в Video Properties:Video1 поставил Video.SetFullScreen, на OnEnter поставил Video.IsFullScreen, полный экран -> мелкий экран, а как бы в режиме полного экрана вывести  на экран кнопки Пуск, Стоп и слайдер? Или хотя бы выставляя в Attributies больший размер экрана сохранить вышеназванные вещи, а то они пропадают при увеличении.

Всего записей: 23 | Зарегистр. 25-04-2007 | Отправлено: 19:31 16-05-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sly33
 
Попробуй так:
 
  • Сохрани размеры окна проекта и объекта Video
  • Разверни окно проекта на весь экран, изменяя его размеры
  • Установи ширину объекта Video равной ширине окна проекта, а высоту равной высоте окна проекта минус высота видеопанели
  • После просмотра видео или при его отмене верни все размеры назад

  • Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 20:03 16-05-2007
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Indigo Rose AutoPlay Media Studio (часть 1)
    Widok (03-09-2007 23:10): лимит страниц. продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru