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

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

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

Widok (30-01-2009 12:11): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AutoPlay Media Studio часть 2 (часть 1)


Параллельная тема в Варезнике - поиск и обсуждение дополнений и ритейл версий


Где почитать:

Для начала читаем статьи: тут раз или тут раз и два и три
Скриптовый язык LUA (англ) На русском здесь,  еще тут и  тут
Видео-уроки (анг)  
Видео-уроки на YouTube (англ)
Где поживиться:

Видео-уроки (Flash) от производителя (англ)
Тоже официальное видео (англ)
Бесплатные шаблоны (маски) для окон ваших приложений (англ)
"Подарки к Рождеству" на оффсайте (англ)
Плагин LuaCOM (англ)
Примеры для начинающих (англ)
Неплохие примеры, библиотеки (англ)
Еще примеры, один из самых активных юзеров на оффоруме (англ)
Плагины и библиотеки (не все free) (англ)
Еще плагины (англ)
Собрание уроков (иногда с русскими объяснениями)
Где найти ответы на вопросы:

Виды путей, используемых в AMS от GOOSE
Включение\отключение фоновой музыки кнопкой
Вывод HTML отчета с использованием SQLite плагина от IndigoRose
Выделение и копирование в буфер текста\части текста от GOOSE
Для тех, у кого русский проект с "кракозяблами"
Запуск WinRAR'a для распаковки архивов от Reineke
Запуск файлов из Web объекта
Запускаем экзешник по информации из реестра от Lexua
Пример бегущей строки (более красивый способ) от tavria2
Из окна в полноэкранный режим и обратно
Изменяем иконку приложения от Lexua
Изменяем курсор в приложении от GOOSE
Изменяем скроллинг ListBox-у от GOOSE
Используем таймер
Отправка данных из форм по e-mail от GOOSE
Перенос строки во всплывающей подсказке от GOOSE
Альтернативный перенос строки для текста (подходит и для *.ini) от Zloy_Gelud
Показ\скрытие объектов по действиям мыши
Полноэкранный режим для приложения
Последовательный запуск нескольких файлов
Проблема с путями при создании приложения .EXE и ресурсами на CD от Reineke
Проигрвывание MP3 из ListBox-а подряд от UMode
Простой пример бегущей строки от GOOSE
Работаем с запароленными архивами от GOOSE
Работаем с объектом дерева от GOOSE
Ряд вопросов и ответов по созданию меню для DVD от tavria2
Реализация Play-листов для Винампа от BOObastis
Таблица дисков системы от Lexua
Утилита для защиты авторанов
Шапка исправлена. Актуально на 20.08.2008 © NightW0lf

Разработчиков autorun'ов и графических дизайнеров приглашаем посетить проект шаблонов для Autoplay Media Studio:
http://ams-templates.com

 
Список выявленных проблем в AMS 7.0

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 23:07 03-09-2007 | Исправлено: Maz, 12:31 25-09-2017
lorents



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

Код:
function Callback(strSource, strDestination, nCopied, nTotal, nFileCopied, nFileTotal)
    nPercent = Math.Round(nCopied / nTotal * 100, 0);
    StatusDlg.SetMeterRange(0, 100);
    StatusDlg.SetTitle("");
    StatusDlg.SetMessage("Копирование");
    StatusDlg.SetStatusText(strDestination);
    StatusDlg.SetMeterPos(nPercent);
    StatusDlg.ShowCancelButton(true, "Cancel");
    if (StatusDlg.IsCancelled()) then
        Input.SetText("Input1", tblFiles[1]);
        return false;
    else
        return true;
    end
end
function SaveAs(strOutDir, strOutFileName)
    strFileToCopy = "AutoPlay\\Videos\\data01.avi";
    local strFiles = CommonDialogs.File(false, "Сохранить",strOutDir, "Видео файл (*.avi)|*.avi|", strOutFileName, "avi", false);
    if (strFiles ~= "CANCEL") then
        local tblFiles = WinApi.DelimitedStringToTable(strFiles, "|");
        if (tblFiles) then
             if (File.DoesExist(tblFiles[1])) then
                local cBut = Dialog.Message("Сохранить как", tblFiles[1].."\r\nУже существует.\r\nЗаменить существующий файл?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1);
                if (cBut == 6) then
                    strOutFile = tblFiles[1];
                    StatusDlg.Show(MB_ICONNONE, false);
                    File.Copy(strFileToCopy, tblFiles[1], true, true, false, true, Callback);
                    StatusDlg.Hide();
                else
                    local strOutDir = String.SplitPath(tblFiles[1]).Drive..String.SplitPath(tblFiles[1]).Folder;
                    local strOutFileName = String.SplitPath(tblFiles[1]).Filename
                    SaveAs(strOutDir, strOutFileName);
                end
            else
                strOutFile = tblFiles[1];
                StatusDlg.Show(MB_ICONNONE, false);
                File.Copy(strFileToCopy, tblFiles[1], true, true, false, true, Callback);
                StatusDlg.Hide();
            end
        end
    end
end
local strOutDir = Shell.GetFolder(SHF_MYDOCUMENTS);
local strOutFileName = "Глобальный передел";
SaveAs(strOutDir, strOutFileName);

 
из-за чего не работает код не пойму, вроде все должно работать как надо?
 

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 18:49 13-11-2008
Crazy_Snake

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

Код:
 
mySourceFolder = GetSFXPath();  
LB = "ListBox1";
ListBox.DeleteItem(LB, LB_ALLITEMS);
 
                tFiles = File.Find(mySourceFolder.."AutoPlay\\Docs\\;", "*.mht", false, false, nil);
    if tFiles then
                for nIndex, sFilePath in tFiles do
                        sData = sFilePath;
                        sText = String.SplitPath(sFilePath).Filename;
                        ListBox.AddItem(LB, sText, sData);
        end
    end
 

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

Всего записей: 26 | Зарегистр. 08-11-2008 | Отправлено: 18:51 13-11-2008 | Исправлено: Crazy_Snake, 18:53 13-11-2008
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents
Убери параметр local в строке  

Цитата:
local tblFiles = WinApi.DelimitedStringToTable(strFiles, "|");

или сделай так:

Код:
Input.SetText("Input1", strOutFile);

 
Добавлено:
Crazy_Snake
  • Глобальные функции:

    Код:
    function GetSFXPath()  
          strPath = "";  
          strArg = _CommandLineArgs[1];  
          if strArg then  
                strPath = String.Right(strArg, String.Length(strArg) - 10);  
          end  
          if (String.Length(strPath) > 0) then  
                tblPath = String.SplitPath(strPath);  
                strPath = tblPath.Drive..String.Left(tblPath.Folder, String.Length(tblPath.Folder) - 1);  
          end  
          return strPath;  
    end
    _SourceFolder = GetSFXPath();

    Используй переменную _SourceFolder в указании путей, только в том случае, если необходимо указать путь к файлу/папке, находящимуся ВНЕ папки 'AutoPlay', т.е. рядом с самим автораном. Например:

    Код:
    -- будет работать
    strPath = _SourceFolder.."\\Soft";
    -- НЕ будет работать
    strPath = _SourceFolder.."\\AutoPlay\\Docs\\Soft";

    Все это при условии компилировании проекта как Web/Email executable.

  • Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 19:06 13-11-2008
    Crazy_Snake

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    У меня абсолютно всё находится в папк AutoPlay! А при загрузке готового проекта работают только переходы по страницам и всё. Все ссылки, проги, музыка, картинки и т.п. ругается что нету такого...
     
    Добавлено:
    Zloy_Gelud
     
    Есть такая функция Dependencies...
    Типа автоустановка прграмм по умолчанию, как я понял. Можно ли свои проги туда воткнуть для начальной установки, типа кодеков, если их нет и т.п...

    Всего записей: 26 | Зарегистр. 08-11-2008 | Отправлено: 19:31 13-11-2008
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Crazy_Snake
    Ну дык а я что написал? Конешно не будет.
    Если у тебя все находится в папке 'AutoPlay', то смысла в функе GetSFXPath() нету!
    Совет. Располагай папки с музыкой, картинками (если они только не используются для создания интерфейса проекта), прогами рядом с автораном и тогда используй функу GetSFXPath() (как в посте выше).
    И ради интереса..сколько у тебя скомпилированный проект весил (SFX-архив) и запускался?
     
     
    Добавлено:
    Dependencies - скорее это такая фича, которая позволяет определять в системе установлено то или иное ПО с указанной версией. Если не установленно указанное ПО, то выводится диалоговое окно с вариантами продолжить запуск проекта или прервать, также существует выбор перейти на оф. сайт разработчика и скачать оттуда это ПО.
    Можно создавать и свои файлы .DET для конкретного ПО.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 19:43 13-11-2008
    Crazy_Snake

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Вешает 613 Мб, запускался конечно, секунд 30 грузится и запускается, но на всех объектах которые связаны с внутренними ресурсами папки AutoPlay выдает ошибку:
    Отказано... Не найден путь к файлу: AutoPlay\Docs\Folder\name...
     
    Добавлено:

    Код:
     
    -- будет работать  
    strPath = _SourceFolder.."Soft";  
    -- НЕ будет работать  
    strPath = _SourceFolder.."AutoPlay\\Docs\\Soft";
     

    Всего записей: 26 | Зарегистр. 08-11-2008 | Отправлено: 20:01 13-11-2008
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Crazy_Snake
    Ну сделай по моему рецепту, и сам проект (SFX) будет весить ~ 3мб и ошибок не должно быть.
     
    Добавлено:

    Код:
    -- будет работать  
    strPath = _SourceFolder.."\\Soft";  

    Двойной слеш обязателен.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 20:46 13-11-2008
    Crazy_Snake

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Делаю...
    Когда двойной слэш, не загружается ListBox, он просто пустой...

    Всего записей: 26 | Зарегистр. 08-11-2008 | Отправлено: 21:05 13-11-2008 | Исправлено: Crazy_Snake, 21:14 13-11-2008
    Zloy_Gelud



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

    Цитата:
    А архив создает из все папки СД_Рут видимо...

    Именно так. Перед компиляцией проекта перемести все второстепенные папки из каталога CD_Root в какое-нибудь другое место. После компилирования помести эти папки обратно рядом с автораном. Толк должен быть, если ты нигде с путями не накосячил.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 21:11 13-11-2008
    Crazy_Snake

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Спасибо за совет, я их все вместе компилировал, щас переделаю.
    Всё сделала, работатет. Вот жаль что файлы все нельзя закадировать в один Было бы типа *.Cab файлика всё и без попытки взлома!!! Очень жаль!

    Всего записей: 26 | Зарегистр. 08-11-2008 | Отправлено: 21:26 13-11-2008 | Исправлено: Crazy_Snake, 22:07 13-11-2008
    tavria2



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

    Цитата:
    Хотелось, чтобы шрифт текста 'Text', можно было изменить.  

    Код:
    hWnd = WinApi.CreateWindowEx(0, "BUTTON", "Text", BS_GROUPBOX.."|"..WS_CHILD, 0, 0, 100, 100, Application.GetWndHandle(), 0, 0, 0);  
    DC = WinApi.GetDC(hWnd);
    hFont = WinApi.CreateFont(DC, "Arial", 14, FW_NORMAL, false, false, false, RUSSIAN_CHARSET);
    WM_SETFONT = 48;
    DLL.CallFunction("user32.dll", "SendMessageA", hWnd..","..WM_SETFONT..","..hFont..",0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
    Window.Show(hWnd);

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 22:51 13-11-2008 | Исправлено: tavria2, 22:51 13-11-2008
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tavria2
    Спасибо за пример!    
    Оказывается я тоже копал в правильную сторону ..имею ввиду в сторону API'шной SendMessageA, только что-то у меня с параметрами не заладилось тогда.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 23:05 13-11-2008
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    парни может кто знает как запустить через плагин WinAPI вот это окно
     
       
     
    вопрос чисто из интереса

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:24 13-11-2008 | Исправлено: lorents, 23:30 13-11-2008
    Zloy_Gelud



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

    Цитата:
    парни может кто знает как запустить через плагин WinAPI вот это окно

    С помощью плагина WinAPI такого не сделать бо нет там такой функи. Средствами самого API такое тоже не сделать бо там необходимо описывать структуру OPENFILENAME, а AMS пока не умеет этого делать. Так что, если это не чисто академический интерес, то пользуй плагин CommonDialogs.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 23:44 13-11-2008
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня проблема с этим кодом очередная
     

    Код:
    function Callback(strSource, strDestination, nCopied, nTotal, nFileCopied, nFileTotal)
        nPercent = Math.Round(nCopied / nTotal * 100, 0);
        StatusDlg.SetMeterRange(0, 100);
        StatusDlg.SetTitle("");
        StatusDlg.SetMessage("Копирование");
        StatusDlg.SetStatusText(strDestination);
        StatusDlg.SetMeterPos(nPercent);
        StatusDlg.ShowCancelButton(true, "Cancel");
        if (StatusDlg.IsCancelled()) then
            return false;
        else
            return true;
        end
    end
    function SaveAs(strOutDir, strOutFileName)
        strFileToCopy = "AutoPlay\\Videos\\data01.avi";
        local strFiles = CommonDialogs.File(false, "Сохранить",strOutDir, "Видео файл (*.avi)|*.avi|", strOutFileName, "avi", false);
        if (strFiles ~= "CANCEL") then
            local tblFiles = WinApi.DelimitedStringToTable(strFiles, "|");
            if (tblFiles) then
                 if (File.DoesExist(tblFiles[1])) then
                    local cBut = Dialog.Message("Сохранить как", tblFiles[1].."\r\nУже существует.\r\nЗаменить существующий файл?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1);
                    if (cBut == 6) then
                        strOutFile = tblFiles[1];
                        StatusDlg.Show(MB_ICONNONE, false);
                        File.Copy(strFileToCopy, tblFiles[1], true, true, false, true, Callback);
                        StatusDlg.Hide();
                    else
                        local strOutDir = String.SplitPath(tblFiles[1]).Drive..String.SplitPath(tblFiles[1]).Folder;
                        local strOutFileName = String.SplitPath(tblFiles[1]).Filename
                        SaveAs(strOutDir, strOutFileName);
                    end
                else
                    strOutFile = tblFiles[1];
                    StatusDlg.Show(MB_ICONNONE, false);
                    File.Copy(strFileToCopy, tblFiles[1], true, true, false, true, Callback);
                    StatusDlg.Hide();
                end
            end
        end
    end
    local strOutDir = Shell.GetFolder(SHF_MYDOCUMENTS);
    local strOutFileName = "Глобальный передел";
    SaveAs(strOutDir, strOutFileName);

     
    как сделать чтобы при запуске диалогового окна, окно проекта блокировалось бы?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 17:13 15-11-2008
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tavria2
    Можно ли получить текст определенной строки (абзаца) в объекте Параграф при наведенни на эту строку курсором мышки? Может как-нить через API?
     
    Добавлено:
    Хотя скорей всего нечего нельхя будет сделать, ведь Параграф не имеет дескриптора

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 19:08 15-11-2008
    tavria2



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

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 21:18 15-11-2008
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tavria2
    Понятно . А можно ли как-то тоже самое только с объектом Input? И можно ли работать с этим объектом (средствами API), если параметр Enabled = false?

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 21:28 15-11-2008
    tavria2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Не знаю, а ListBox не подходит - кажется в нем можно узнать какая item находится под курсором.  
     
    Если не секрет, что ты строишь?

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 11:52 16-11-2008
    alfonser



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подскажите, пожалуйста! Как мне указать путь к приводу, если авторан запущен с жесткого диска. Ведь путь _SourceDrive используется (если я правильно понимаю) если с него запущен авторан?

    Всего записей: 137 | Зарегистр. 01-03-2008 | Отправлено: 19:21 16-11-2008
       

    Страницы: 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

    Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Indigo Rose AutoPlay Media Studio (часть 2)
    Widok (30-01-2009 12:11): Лимит страниц. Продолжаем здесь.


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru