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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто-нибудь разобрался как сделать чтобы диалоговое окно не блокировало проект а только была поверх проекта?
 
как сделать чтобы при нажатии на кнопку у меня окно проекта из standard становилось Kiosk-color?
через что мне сделать?

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 10:08 31-10-2008
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents -- опять дубли плодишь =(. Все уже прочитали твой пост. Знали б - ответили.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос который точно я не задавал, а за повтор простите больше не буду
парни тут такая проблема!  
хочу сделать такую вещь, чтобы пользователь мог сам выбирать какие pdf-файлы нужны и чтобы мог сохранить все выбранные в один файл?
как это осуществить?

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:05 31-10-2008
firstdock

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zloy_Gelud
 
Согласен что кода много, так просто не разобраться.. могу выслать проект на мыло.
 
прошу прощение если мои слова воспримятся как попрошайничество.
 
поделитесь, если есть ams выше версии 7.1.

Всего записей: 29 | Зарегистр. 09-10-2007 | Отправлено: 22:50 31-10-2008 | Исправлено: firstdock, 22:52 31-10-2008
lorents



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

Цитата:
поделитесь, если есть ams выше версии 7.1.

http://forum.ru-board.com/topic.cgi?forum=35&topic=0720&start=1320

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:59 31-10-2008
Zloy_Gelud



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

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



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

Цитата:
Вопрос который точно я не задавал, а за повтор простите больше не буду
парни тут такая проблема!  
хочу сделать такую вещь, чтобы пользователь мог сам выбирать какие pdf-файлы нужны и чтобы мог сохранить все выбранные в один файл?
как это осуществить?

 
я тут нашел такую улиту pdfspme_cmd.exe  которая объединяет несколько pdf-файлов в один (как раз то что мне нужно)
 
вот немного нашел об этом
 
      -MER:
 
            -MER  <<-I> <input1> [range]>   […]   [<-I> <input N> [range]]   [<-O> <output >]  
 
                        merge the file input1 input2 ... inputN to output file.
 
<-I> <input>
           input file path, eg. c:\abc\input.pdf
 
<range>
           indicate extract pages of ranges from a PDF file, e.g. 1,3,5-10 ,
           please refer to merge parameters table above.
 
<-O> <output>
           output the rusult file.
 
 
example:
pdfspme_cmd.exe  -mer  -i  "c:\abc\input1.pdf"   -i  "c:\abc\input2.pdf"   -o "c:\aaa\merge.pdf"
then result is:
c:\aaa\merge.pdf        The file contain both input1.pdf and input2.pdf  
 
pdfspme_cmd.exe -mer -i "c:\abc\input1.pdf" "1-100"  -i "c:\abc\input2.pdf" "101-"   -o "c:\aaa\merge.pdf"
then result is:
c:\aaa\merge.pdf       The file contain 1-100 page of the file "input1.pdf" and 101-end page of the file "input2.pdf "
 
может кто подскажет как сделать моё задуманное через эту улиту

Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 23:51 31-10-2008
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents
 
Попробуй такое (сам каюсь не тестил, но по идее должно работать):

Код:
local tblFilePaths = Dialog.FileBrowse(true, "Открыть", _DesktopFolder, "PDF Files (*.pdf)|*.pdf|", "", "dat", true, false);
if (tblFilePaths ~= nil) and (tblFilePaths[1] ~= "CANCEL") then
    strArg = "";
    -- путь к файлу с уже объединенными .PDF
    strOutFile = String.SplitPath(tblFilePaths[1]).Drive..String.SplitPath(tblFilePaths[1]).Folder.."split.pdf";
    for n, strPathFile in tblFilePaths do
        -- добавляем выбранные файлы в строку принимаемых арг-ов
        strArg = strArg.." -i \""..strPathFile.."\"";
    end
    -- формируем окончательную строку аргументов
    strArg = "-mer "..strArg.." -o \""..strOutFile.."\"";
    -- тест строки арг-ов
    --Input.SetText("Input1", strArg);    
    File.Run("AutoPlay\\Docs\\pdfspme_cmd.exe", strArg, "", SW_MINIMIZE, false);
end


Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 01:24 01-11-2008 | Исправлено: Zloy_Gelud, 01:26 01-11-2008
Zloy_Gelud



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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zloy_Gelud
спасибо, код работает, а можно тебя попросить сделать не много другой код
как бы pdf файлы уже находятся в проекте и надо сделать чтобы  пользователь мог сам выбрать какие файлы ему нужны через объект CheckBox (на примере двух CheckBox)
если тебе конечно не очень трудно подскажи пожалуйста, весь день пробую и ничего не выходит
и еще один вопрос а как сделать чтобы созданный файл сохранялся во временную папку а то у меня созданный файл сохраняется там же где и pdfspme_cmd.exe

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



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

Код:
--*** Типа переменные ----------------
local strPDFPath_1 = "";
local strPDFPath_2 = "";
-- выходной файл будет создан во временной папке Windows
local strOutFilePath = _TempFolder.."\\split.pdf";
--*** Путь к первому файлу ----------------
local nSelected_1 = ComboBox.GetSelected("ComboBox1");
if (nSelected_1 ~= -1) then
    strPDFPath_1 = ComboBox.GetItemData("ComboBox1", nSelected_1);
end
--*** Путь ко второму файлу ----------------
local nSelected_2 = ComboBox.GetSelected("ComboBox2");
if (nSelected_2 ~= -1) then
    strPDFPath_2 = ComboBox.GetItemData("ComboBox2", nSelected_2);
end
--*** Объединяем два .PDF файла в один ----------------
if (strPDFPath_1 ~= "") and (strPDFPath_2 ~= "") then
    local strArg = "-mer -i \""..strPDFPath_1.."\" -i \""..strPDFPath_2.."\" -o \""..strOutFilePath.."\"";
    File.Run("AutoPlay\\Docs\\pdfspme_cmd.exe", strArg, "", SW_MINIMIZE, false);
end

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zloy_Gelud
СПАСИБО! работает и все понятно как
если кому надо то программа откуда я взял pdfspme_cmd.exe называется PDF Split Merge
 
Добавлено:
и еще как сделать чтобы pdfspme_cmd.exeКак запустить не был виден для пользователя?

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zloy_Gelud
мы же должны указать путь к pdf-файлам, а где у тебя это указывается,  
простите чё-то сегодня туплю
 
Добавлено:
ой блин ты же мне сделал через ComboBox а мне надо было через CheckBox
мне надо просто поменять слова ComboBox на CheckBox правильно?
че-то сегодня я реально торможу

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lorents [Исправлено]
 
Мне чёт показалось, что тебе надо было с Комбобоксами .
Ну, а если с Чекбоксами, то возможно так сойдет:
  • Создай 3 объекта CheckBox (для примера) с именами CheckBox1, CheckBox2, CheckBox3, но с пустым текстом.
  • On Preload страницы:

    Код:

    function KillProcessTree(strProcessHost)
        for nPID, strFilePath in (System.EnumerateProcesses()) do
            if (String.Lower(String.SplitPath(strFilePath).Filename..String.SplitPath(strFilePath).Extension) == strProcessHost) then
                System.TerminateProcess(nPID);
            end
        end
    end
     
    -- таблица .PDF файлов
    -- таблицу можно формировать динамически, сканируя опред. папку с .PDF файлами

    tblPDFFiles = {'C:\\PDF\\1.pdf', 'C:\\PDF\\2.pdf', 'C:\\PDF\\3.pdf'};        
    --*** заполняем имена чекбоксов именами .PDF файлов
    for n, strPDFPath in tblPDFFiles do
        CheckBox.SetProperties("CheckBox"..n, {Text = String.SplitPath(strPDFPath).Filename..String.SplitPath(strPDFPath).Extension});
    end

  • On Cick кнопки:

    Код:
    -- путь к выходному файлу
    local strOutFilePath = _TempFolder.."\\split.pdf";
    -- количество чекбоксов на странице
    local nChBCount = 3;
    -- аргументы, принимаемые программой
    local strArg = "";
    --*** формируем часть строки аргументов, состоящую из входных файлов
    for n=1, nChBCount do
        bChecked = CheckBox.GetChecked("CheckBox"..n);
        if (bChecked) then        
            strArg = strArg.." -i \""..tblPDFFiles[n].."\"";
        end
    end
    -- если выбрали какие-нибудь файлы
    if (strArg ~= "") then
        -- строка аргументов
        strArg = "-mer"..strArg.." -o \""..strOutFilePath.."\"";
        Shell.Execute("AutoPlay\\Docs\\pdfspme_cmd.exe", "open", strArg, "", SW_HIDE, false);    
        -- имя процесса (программы PDF Split Merge). См. в Диспетчере Задач
        KillProcessTree("notepad.exe");
    end

     
    Добавлено:
    lorents
     

    Цитата:
    как сделать чтобы pdfspme_cmd.exeКак запустить не был виден для пользователя?

    Можно попробывать так, по крайне мере Блокнот таким образом получилось запустить скрытым:

    Код:
    Shell.Execute("AutoPlay\\Docs\\pdfspme_cmd.exe", "open", strArg, "", SW_HIDE, false);

    З.Ы. И ещё, неплохо бы после выполнеия склеивания .PDF файлов, закрыть и саму программу (PDF Split Merge). Немного подправил код.

  • Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 00:34 02-11-2008 | Исправлено: Zloy_Gelud, 01:23 02-11-2008
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    БОЛЬШОЕ ПРЕБОЛЬШОЕ СПАСИБО!

    Цитата:
    SW_HIDE

    помогло

    Цитата:
    З.Ы. И ещё, неплохо бы после выполнеия склеивания .PDF файлов, закрыть и саму программу (PDF Split Merge). Немного подправил код.

    это проблематично сделать, т.к. она запускается менее чем на секунду, и она к тому же сама выключается, но вот за саму функцию KillProcessTree спасибо, буду знать теперь
     
    и последний вопрос  
    заметил такую проблему что код работает один раз, как сделать чтобы он удалял при повторном выборе старый split.pdf
     
    пробовал через  

    Код:
    File.Delete(_TempFolder.."\\split.pdf", false, false, false, nil);

    но ничего не вышло, думаю из-за того чтоб созданный split.pdf загружается в web1, как сделать что можно было удалить
     
    и еще как сделать что если не нажат ни один из CheckBox то кнопка не видима
    (точнее через что?)

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



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Zloy_Gelud ну а скажем my.program.exe как закрыть?

    Всего записей: 90 | Зарегистр. 02-01-2008 | Отправлено: 11:33 02-11-2008
    lorents



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

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



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

    Цитата:
    как сделать чтобы он удалял при повторном выборе старый split.pdf


    Цитата:
    думаю из-за того чтоб созданный split.pdf загружается в web1

    Именно поетотому. Удалить будет невозможно, пока не выгрузишь из Веба.  
    Можно создавать новый split.pdf, например дописывая к имени цифрой индекс (1, 2, 3).  А после закрытия проекта удалять эти файлы.

    Цитата:
    и еще как сделать что если не нажат ни один из CheckBox то кнопка не видима

    Сделай первоночально кнопку невидимой, а при выборе какого-нить ЧекБокса делай ее видимой.

    Цитата:
    а если я буду использовать название файлов русские то будет ли работать тогда?

    Всегда можно попробывать . Ну а по идее с кириллицей должно работать.


    KurtWagner -- а KillProcessTree не помогает??

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



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

    Цитата:
    Именно поетотому. Удалить будет невозможно, пока не выгрузишь из Веба.  

    а как это сделать, пробовал просто загружать другую страницу, но не вышло, т.е. в коде для кнопки написал загрузка определённого файла и удаление split.pdf  

    Цитата:
    Можно создавать новый split.pdf, например дописывая к имени цифрой индекс (1, 2, 3).  А после закрытия проекта удалять эти файлы.  

    можно поподробнее

    Цитата:
    Сделай первоночально кнопку невидимой, а при выборе какого-нить ЧекБокса делай ее видимой.

    не скажешь  какой параметр за это отвечает, не могу найти, а код я сам напишу

    Цитата:
    Всегда можно попробывать . Ну а по идее с кириллицей должно работать.

    если заработает скажу
     
    Добавлено:
    сейчас столкнулся с такой проблемой не могу установить ни один объект поверх плагина, есть идеи от чего это может быть?

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



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

    Цитата:
    пробовал просто загружать другую страницу, но не вышло, т.е. в коде для кнопки написал загрузка определённого файла и удаление split.pdf  

    Не знаю как у тебя.. но я загрузил в Веб другой .PDF файл, а предыдущий преспокойно удалился.

    Цитата:
    можно поподробнее

    Можно Немного полёта фантазии добавил..
  • Глобальные функции:

    Код:
    --[[ Создание рандомного имени из nChar символов ]]
    function CreateRandomName(nChar)
        strReturn = "";
        if (nChar == "") or (nChar == nil) then
            nChar = 5;
        end
        -----------------------------------------------------------
        local tblLatin = {'a', 'b', 'c', 'd', 'e', 'f', 'g',  
                            'h', 'i', 'j', 'k', 'l', 'm', 'n',  
                            'o', 'p', 'q', 'r', 's', 't', 'u',  
                            'v', 'w', 'x', 'y', 'z'};
        -----------------------------------------------------------
        for n = 1, nChar do
            nRandom = Math.Random(1, Table.Count(tblLatin));
            strReturn = strReturn..tblLatin[nRandom];
        end
        return strReturn;
    end
     
    --[[ Установка активности кнопки]]
    function SetButtonEnable()
        local bEnable = false;
        -- 3 - кол-во CheckBox'ов на странице
        for n = 1, 3 do
            if (CheckBox.GetChecked("CheckBox"..n)) then
                bEnable = true;
                break
            end
        end
        if (bEnable) then
            Button.SetEnabled("Button1", true);
        else
            Button.SetEnabled("Button1", false);
        end
    end

  • Заменить строку:

    Цитата:
    local strOutFilePath = _TempFolder.."\\split.pdf";

    на:

    Код:
    local strOutFilePath = _TempFolder.."\\SPME_Temp\\"..CreateRandomName(6)..".pdf";


    Цитата:
    не скажешь  какой параметр за это отвечает, не могу найти, а код я сам напишу

    Сегодня я добрый..пишу все сам.
  • On Click каждого CheckBox'a:

    Код:
    SetButtonEnable();


    Цитата:
    сейчас столкнулся с такой проблемой не могу установить ни один объект поверх плагина, есть идеи от чего это может быть?

    Какой объект? Какой плагин?

  • Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 17:33 02-11-2008 | Исправлено: Zloy_Gelud, 17:38 02-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