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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AutoPlay Media Studio





  AutoPlay Media Studio - мощная программа для создания меню автозагрузки CD/DVD. Эта программа создаст все необходимые файлы для автозапуска и его графическую оболочку, и даже сама встроит в нее использованные в проекте нестандартные шрифты. Пользователю останется лишь записать готовый проект на свой CD/DVD.
  AutoPlay Media Studio не требует от пользователя никаких особых знаний и очень прост в освоении, имеет дружественный и интуитивно понятный интерфейс. Приложение, которое будет создано AutoPlay Media Studio в конце работы, представлено в виде объектной модели. Эта модель состоит из группы отдельных страниц. На этих страницах можно размещать объекты, которые могут представлять собой графику, музыку, текст, видео, Flash, HTML и пр. Любому элементу можно назначить определенное действие. Например, при наведении на рисунок курсора мыши, может возникать текст с комментариями, при нажатии на кнопку "Play" начнет проигрываться фильм и т.д. Программа предоставляет сотни различных действий, которые можно связать с объектами. В AutoPlay Media Studio присутствует большое количество уже готовых шаблонов.
  AutoPlay Media Studio имеет широкие возможности и богатый набор инструментов для разработки мультимедийных проектов. Использовать программу можно не только для создания файлов автозапуска, но и, например, для разработки интерактивного обучающего софта или мультимедийной презентации.

Язык интерфейса: Английский
Страница загрузки: AutoPlay Media Studio Commerical Trial 8.5


Скриптовый язык LUA:
на Lua.Org (Official) - на Lua.Ru

Ресурсы, посвященные AMS (содержат коллекции примеров, дополнений, уроков):
  • icynorth.com
  • imagine-programming.com
  • mindquake.com.br

    Инструменты:
  • ScriptOMatic Tool - создает скрипт обращения ко всем свойствам выбранного WMI-класса

    Ответы на наиболее часто задаваемые вопросы


    Раскраска AMS-кода для публикации на форуме от UModeL: версия 1 и версия 2.

  • Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 06:17 05-08-2012 | Исправлено: Komandor, 13:30 23-09-2023
    bigbrain

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

    Цитата:
    В переменной sHTML будет код страницы.

    К сожалению, так не выходит.  
    1) Аргумент 2 должен быть таблицей. Сделал пустую таблицу myvar и поставил вместо nil.
    2) Удается получить только код когда есть указание страницы, например:
    http://forum.ru-board.com/topic.cgi?forum=5&topic=39341&glp
    http://forum.ru-board.com/mypage.html
     
    Если будет адрес типа https://www.google.ru или https://habrahabr.ru/post/308192/, то появляется ошибка LastError = 2502 ("Не удалось открыть запрос.")

    Всего записей: 277 | Зарегистр. 16-02-2006 | Отправлено: 10:54 05-09-2017 | Исправлено: bigbrain, 19:26 05-09-2017
    KerberX



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

    Цитата:
    Аргумент 2 должен быть таблицей. Сделал пустую таблицу myvar и поставил вместо nil.

    Я забыл проверить эти куски кода. И там можно сразу использовать конструктор таблицы, не обязательно создавать ненужную переменную.

    Код:
    local sHTML = HTTP.Submit("http://forum.ru-board.com/topic.cgi?forum=5&topic=39341&glp", {}, SUBMITWEB_GET, 20, 80, nil, nil);


    Цитата:
    Удается получить только код когда есть указание страницы, например:

    Это скорее связано с HTTPS, попробуй для таких адресов использовать HTTP.SubmitSecure.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 05:33 06-09-2017
    bigbrain

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

    Цитата:
    Это скорее связано с HTTPS, попробуй для таких адресов использовать HTTP.SubmitSecure.
     

     
    Проблема решилась просто, дело в невнимательности.  
    Я не глядя скопировал Ваш пример, а там HTTP и HTTPS оба подключались по 80-му порту и была ошибка поэтому =))))
    Большое спасибо за помощь.

    Всего записей: 277 | Зарегистр. 16-02-2006 | Отправлено: 15:00 06-09-2017
    ctaty3



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Спасибо! Конечно с диалогами они что-то совсем не продумали... Сделали хотя бы возможность создания мастер-диалога, уже было бы значительно проще, а так сиди и прикидывай, что, где и как расположить на 1 форме диалога при переключении... Эх(
     
    А в чём вообще плюшка библиотеки AMSObject? Ты её сам писал?

    Всего записей: 75 | Зарегистр. 17-04-2016 | Отправлено: 10:04 07-09-2017 | Исправлено: ctaty3, 10:05 07-09-2017
    KerberX



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

    Цитата:
    А в чём вообще плюшка библиотеки AMSObject? Ты её сам писал?

    Да, сам. Фишка в ней - объектно-ориентированный подход. То есть ты можешь сделать что-то вроде такого:

    Код:
    local t = {"Label1", "ListBox2", "Plugin1", "Grid7"};
    for i, sObjectName in ipairs(t) do
        local o = AMSObject(sObjectName);
        o:SetSize(o:GetSize().Width + i*i, o:GetSize().Height - i-i);
        o:SetVisible(i*i >= 2);
    end

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

    Код:
    local t = {"Label1", "ListBox2", "Plugin1", "Grid7"};
    for i, sObjectName in ipairs(t) do
        local nType;
        if (Application.GetCurrentPage() ~= "") then
            nType = Page.GetObjectType(sObjectName);
        else
            nType = DialogEx.GetObjectType(sObjectName);
        end
     
        if (nType == OBJECT_LABEL) then
            Label.SetSize(sObjectName, Label.GetSize().Width + i*i, Label.GetSize().Height - i-i);
            Label.SetVisible(sObjectName, i*i >= 2);
        elseif (nType == OBJECT_LISTBOX) then
            ...
        end
    end

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 11:41 07-09-2017 | Исправлено: KerberX, 13:59 14-09-2017
    ctaty3



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Оу... Ну буду смотреть и пробовать...) Спасибо за пояснение!
     
    Слушай, ещё такой вот вопросик, пока последний....  И опять же, связанный с диалогом... Как отключать определённые пункты меню диалога, которые отображаются при нажатии по иконке вверху(слева)? Как там оставить только пункты "Закрыть" и "Переместить"? И это делается через функцию g_OnUpdateMenuEnabled?

    Всего записей: 75 | Зарегистр. 17-04-2016 | Отправлено: 15:46 07-09-2017 | Исправлено: ctaty3, 15:51 07-09-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ctaty3 У меня обратный вопрос...  
    KerberX Как туда что то навесить...
    Например в WinNTSetup там много всего полезного.

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 17:30 07-09-2017 | Исправлено: CryptoUsbtor, 17:31 07-09-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ctaty3
    CryptoUsbtor
    Через AMS это сделать не получится, нужно использовать WinAPI напрямую. С помощью функции GetSystemMenu получаем копию системного меню и редактируем её используя функции из этого списка. Это меню сразу будет новым системным меню окна. При необходимости его можно вызвать самому используя TrackPopupMenu. Понадобится плагин MemoryEx для вызова соответствующих функций.
     
    Может быть есть плагин, который может сделать всё это сам, но я о таком не знаю. Мне самому некогда писать всё это.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 19:02 07-09-2017 | Исправлено: KerberX, 19:03 07-09-2017
    Lexua



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа! Требуется помощь клуба. Уперся в очередное ограничение функционала AMS. Функция TextFile.ReadToString не читает большие файлы типа 10Мб и больше. Может кто знает как побороть?

    Всего записей: 2844 | Зарегистр. 15-10-2002 | Отправлено: 16:37 18-09-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lexua
    Не замечал такого ограничении у этой функции, но можно обратиться к стандартной библиотеке Lua.

    Код:
    function TextFile.ReadFile(sPath)
        local hFile = io.open(sPath, "rb");
        if (hFile) then
            local sOut = hFile:read("*a");
            hFile:close();
            return sOut;
        end
        hFile:close();
    end

    Эта функция работает аналогично TextFile.ReadToString.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 22:35 18-09-2017 | Исправлено: KerberX, 13:54 19-09-2017
    Lexua



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Премного благодарен!!! Ты как всегда на высоте. Кстати та же проблема и с TextFile.ReadToTable

    Всего записей: 2844 | Зарегистр. 15-10-2002 | Отправлено: 10:18 19-09-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lexua
    Вместо неё можно использовать такую функцию:

    Код:
    function TextFile.ReadTable(sPath)
        local tOut = {};
        local hFile = io.open(sPath, "rb");
        if (hFile) then
            for s in hFile:lines() do
                table.insert(tOut, s);
            end
        end
     
        hFile:close();
        return tOut;
    end

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 13:53 19-09-2017 | Исправлено: KerberX, 13:54 19-09-2017
    Lexua



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Я так и думал, спасибо. Я тут еще протестирую малость. Т.е. я попробовал заменить функцию  TextFile.ReadToString на  твою везде, но не везде заработало. Но там где мне было нужно - работает.
     
    Добавлено:
    Не в функции дело...

    Всего записей: 2844 | Зарегистр. 15-10-2002 | Отправлено: 14:45 19-09-2017 | Исправлено: Lexua, 14:46 19-09-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lexua
    Пришли файл, с которым функция не работает.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 16:30 19-09-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Подскажи, при открытии файла io он в память загружается?
    Я в доках вообще не разобрался...

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 21:57 19-09-2017
    KerberX



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CryptoUsbtor
    Нет. Все функции io используют соответствующие функции из стандартной библиотеки C (io.open -> fopen, file:read -> fread, file:close -> fclose и т. п.). Эти функции могут использовать буфер, но он небольшой (не знаю сколько именно, может 32 или 64 КБ). Так что можно без проблем открыть файл на 4 ГБ при размере оперативной памяти 1 ГБ.

    Всего записей: 597 | Зарегистр. 08-09-2011 | Отправлено: 22:09 19-09-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть три (иногда четыре) файла, мне их требуется склеить, по типу, как делает cmd:

    Код:
    COPY /b 7ZSD_LZMA.sfx + config.txt + Archive.7z AdobeReader7.exe

    То есть, клеим 7ZSD_LZMA.sfx плюс config.txt плюс Archive.7z и на выходе получаем AdobeReader7.exe
    но с помощью Lua и io, с CallBack
    Архив Archive.7z, может быть большого размера.
    Нашел такой пример: File.JoinBinary.lua, но вроде он не подходит или я не разобрался как им пользоваться...
    Есть какие то варианты реализации?

    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 08:52 20-09-2017 | Исправлено: CryptoUsbtor, 08:59 20-09-2017
    Lexua



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KerberX
    Просто проблема в том, что штатная функция возвращает пустую строку в случае ошибки, а твоя возвращает nil. Я уже код поправил. Работает.
     

    Код:
    function TextFile.ReadFile(sPath)
        local hFile = io.open(sPath, "rb");
        if (hFile) then
            local sOut = hFile:read("*a");
            hFile:close();
            return sOut;
        else
        return "";
        end
    end

    Всего записей: 2844 | Зарегистр. 15-10-2002 | Отправлено: 09:10 20-09-2017 | Исправлено: Lexua, 11:18 20-09-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lexua Немножко неправильно...  
    Если в случае ошибки будет "", то появится новая глобальная переменная sOut, которая выйдет за пределы функции.
    Тут несколько варианта решения:  
    объявить что переменная локальна в начале функи:

    Код:
    local sOut;

    или в начале функи:

    Код:
    local sOut = sOut or "";

    ну или так:

    Код:
    return "";

    или дописать к возврату:

    Код:
    return sOut or "";


    Всего записей: 742 | Зарегистр. 24-04-2016 | Отправлено: 10:25 20-09-2017 | Исправлено: CryptoUsbtor, 10:49 20-09-2017
    Lexua



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CryptoUsbtor, А ну да, мой косяк. Поправил Так даже изящнее...
     

    Цитата:
    или дописать к возврату:  
     
    Код:
    return sOut or "";
     

     
    не покатит именно так. Возврат выполняется при условии hFile Функция вернет nil при ошибке

    Всего записей: 2844 | Зарегистр. 15-10-2002 | Отправлено: 11:14 20-09-2017 | Исправлено: Lexua, 11:30 20-09-2017
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

    Компьютерный форум Ru.Board » Компьютеры » Программы » Indigo Rose AutoPlay Media Studio (часть 5)


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru