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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
tavria2



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


countryman

Цитата:
Zip.Extract(sFile, {sFile}, sTempDirectory, false, false, "password", 0, nil);  

Твой код указывает на то, что из архивного файла  sFile нужно извлечь этот же архивный файл sFile ?!

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 11:23 23-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
В смысле, в скобках {sFile} - это переменная, описывающая имя файла после разархивирования? Имеешь в виду, что достаточно создать новую переменную? или нужно писать точное имя файла (напр. 123.ppt)?  
Попробовал поменять {sFile} на {sFile1}, при запуске получил:
 
      Line8: Argument 2must be of type string
 
Подскажи, пожалуйста, что конкретно нужно вписать? Или хотя бы на чем основываться при выборе переменной?
Я хочу, чтобы при выборе файла из листбокса происходила его разархивация, а потом полученный файл открывался вьювером. Так как файлов много, это должен быть какой-то скрипт, чтобы все происходило автоматом.

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 12:21 23-02-2007 | Исправлено: countryman, 12:49 23-02-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
countryman
Ты пытаешся использовать одну переменную для хранения двух различных значений: имя zip-файла и имя извлекаемого файла - так работать не будет. Заведи еще одну переменную, например cFileZip, в которой храни путь и имя zip-файла, а переменная sFile будет получать имя файла для распаковки:

Код:
cFileZip = "путь и имя zip-файла";
Zip.Extract(cFileZip, {sFile}, sTempDirectory, false, false, "password", 0, nil);
 

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 16:16 23-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
Сделал как ты советуешь, добавил переменную  - все равно не получается.  
 
Код:
 
sTempDirectory = _TempFolder .. "\\";
tSelected = ListBox.GetSelected("ListBox2");
cFileZip = ListBox.GetItemData("ListBox2", tSelected[1]);
Zip.Extract(cFileZip, {sFile}, sTempDirectory, false, false, "1", 0, nil);
ViewerPath = _SourceFolder .. "\\PowerPointViewer\\pptview.exe";
Label.SetText("Label1", sFile); - при запуске выдает Argument 2 must be of type string. Если эту строчку закомментить, ту же ошибку выдает на следующей строке, где тоже встречается sFile:
 
File.Run(ViewerPath, sFile, "", SW_SHOWNORMAL, true);
     
 
Может, эту sFile нужно где-то дополнительно объявлять??  
Ты уж извини, что надоедаю по пустякам, но у меня пока что это никак не получается. Хочется сделать все быстро, сижу тут, варианты разные пробую, но! увы и ах! - ничего пока что удаваться не собирается. В смысле - не подумай, что я информационным тунеядством занимаюсь, сижу тут, хэлпы читаю, но пока без толку...  
Кстати, раньше тоже думал добавить еще одну переменную, но и это не заработало
 
Кстати, у меня вопрос: почему sTempDirectory называется именно так, а не, например, сTempDirectory?? Это просто совпадение? Или же есть переменные, которым можно присваивать только определенные категории значений (обозначать путь или нечто вроде)???  

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 16:45 23-02-2007 | Исправлено: countryman, 16:57 23-02-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
countryman
Что у тебя находится в ListBox, в полях Text и Data?

Цитата:
почему sTempDurectory называется именно так, а не, например, сTempDurectory??

Это пользовательская переменная - имя задаешь сам.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 16:58 23-02-2007
DenVl



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вообще важно или нет какой командой запускать экзешник: File.Run (...) или File.Open (...)?

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
 
Поле Text - названия презентаций, "Презентация бла-бла-бла №1"
В поле Data - адрес файла, "AutoPlay\Docs\1.zip"
1.zip запаролен.
Почему не работает - не представляю, по идее все нормально.

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 17:21 23-02-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenVl
Чем тебя не устраивает File.Run?


countryman
В 1.zip содержится 1 файл или несколько?

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 18:47 23-02-2007
DenVl



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
Просто неизвестно будет ли это вообще экзешник или, например, архив, или текстовый файл, или еще что-нидь...вот я и думаю: File.Run запустит ток экзешник, а для File.Open наверно без разницы?

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DenVl
В твоем случае наверное лучше использовать Shell.Execute.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 22:37 23-02-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
countryman
Если в каждом архиве находится по одному файлу...
Код:
cViewerPath = _SourceFolder .. "\\PowerPointViewer\\pptview.exe";  
tSelected = ListBox.GetSelected("ListBox2");  
cZipFileName = _SourceFolder .. "\\"..ListBox.GetItemData("ListBox2", tSelected[1]); -- путь и имя zip-файла  
tFiles = Zip.GetContents(cZipFileName, true); -- список файлов в архиве, в виде таблицы
cFileName = tFiles[1]; -- имя файла в архиве (если файл единственный в архиве)
Zip.Extract(cZipFileName, {cFileName}, _TempFolder, true, false, "password", 0, nil); -- распаковываем во временную папку
error = Application.GetLastError(); -- проверка на ошибку
if (error ~= 0) then -- ошибка
    Dialog.Message("Ошибка", "Не удалось извлечь файл из архива.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
else -- нет ошибок
    if (File.DoesExist(_TempFolder.."\\"..cFileName)) then -- если файл найден во временной папке
        File.Run(cViewerPath, cFileName, _TempFolder, SW_SHOWNORMAL, true); -- запускаем презентацию  
        File.Delete(_TempFolder.."\\"..cFileName, false, false, false, nil); -- удаляем файл из временной папки
    else -- файл не найден во временной папке
        Dialog.Message("Ошибка", "Файл не найден.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
    end
end

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 01:57 24-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
НЕ РАБОТАЕТ! Пишет: "Не удалось извлечь файл из архива.""
Блин...  
Слушай, а такой вопрос: возможно, будешь смеяться, но ИМЕЕТ ЛИ ЗНАЧЕНИЕ, КАКОЙ АРХИВАТОР УСТАНОВЛЕН НА КОМПЕ???? А то у меня 7zip.
 
Через 5 минут:
Дурацкий вопрос )
 
ЗАРАБОТАЛО! НО! я немного поменял код:
 
cViewerPath = _SourceFolder .. "\\PowerPointViewer\\pptview.exe";  
tSelected = ListBox.GetSelected("ListBox2");  
cZipFileName = _SourceFolder .. "\\"..ListBox.GetItemData("ListBox2", tSelected[1]);  
tFiles = Zip.GetContents(cZipFileName, true);
cFileName = tFiles[1];
Zip.Extract(cZipFileName, {cFileName}, _TempFolder, true, false, "******", 0, nil);
 
 
    if (File.DoesExist(_TempFolder.."\\"..cFileName)) then  
        File.Run(cViewerPath, cFileName, _TempFolder, SW_SHOWNORMAL, true);  
        File.Delete(_TempFolder.."\\"..cFileName, false, false, false, nil);
    end
 
СПАСИБО ТЕБЕ ОГРОМНОЕ!!!

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 10:23 24-02-2007 | Исправлено: countryman, 10:43 24-02-2007
tavria2



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

Цитата:
ИМЕЕТ ЛИ ЗНАЧЕНИЕ, КАКОЙ АРХИВАТОР УСТАНОВЛЕН НА КОМПЕ????

Нет.

Цитата:
ЗАРАБОТАЛО! НО! я немного поменял код:  

Если у тебя в этом варианте все работает без проверки на ошибку, а с проверкой не хочет, то возможно у тебя глючит AMS, скорее всего из за русификатора. Я уже видел рабочий код, который не правильно работал на русифицированной версии. Если все-таки ты не будешь использовать проверку на ошибку, тогда убери строку: error = Application.GetLastError();

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 10:54 24-02-2007 | Исправлено: tavria2, 11:22 24-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
 
Уже сделано!
 
Кстати, аналогичным образом запаролил видео - и тоже работает (на другой странице у меня обучающие видеофильмы в листбоксе, тоже не хотел, чтобы их так легко можно было стырить). Теперь осталось придумать защиту от эмуляторов виртуальных дисков
 
Еще раз (и думаю, не последний) спасибо
 
 
 
Добавлено:
И еще один вопрос:
 
Как лучше всего сделать прогресс бар или нечто похожее?
 
Зачем нужно: фильм занимает, допустим, 100 Мб. Надо каким-то "интеллигентным" образом занять юзера в то время, пока фильм распаковывается в папку Темп. Где-то в форуме встречал, как прикрутить прогресс бар на разархивирование файла, но сейчас никак не могу найти, а самому не придумать . В хэлпе как-то размыто описано.
 
В общем, есть одна идея: где-то у меня завалялась анимированная гифка с прогрессом, но она не информативна - просто зацикленная, то есть реальный прогресс там не отобразить.
 
Кто-то уже делал похожее? Поделитесь, плиз!
 
Добавлено:
Вот код лист-бокса ListBox2 "Он дабл-клик" (то есть, в момент выбора фильма происходит его разархивация в Темп.)  
 
moviesel = ListBox.GetSelected("ListBox2");  
cZipFileName = _SourceFolder .. "\\"..ListBox.GetItemData("ListBox2", moviesel[1]);  
tFiles = Zip.GetContents(cZipFileName, true);
playmovie = tFiles[1];
 
Zip.Extract(cZipFileName, {playmovie}, _TempFolder, true, false, "******", 0, nil);
Video.Load("Video1", _TempFolder.."\\"..playmovie, true, false);
 
vIsVisible = Video.IsVisible("Video1");
if (not vIsVisible) then
    Video.SetVisible("Video1", true);
end
 
 
Очень хочу показать пользователю прогресс, чтобы он не чувствовал себя брошенным
 
Добавлено:
Да, посмотрел примеры - нужен платный плагин....
Есть какой халявный выход?

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 11:13 24-02-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
countryman
В справке есть пример, см. StatusDlg.Show() и StatusDlg.Hide().

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 14:40 24-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ХА!
Нашел вот эТТо:
 
StatusDlg.Show(MB_ICONNONE, false);
        
Zip.Extract(cZipFileName, {playmovie}, _TempFolder, true, false, "1", 0, nil);
            
StatusDlg.Hide();
 
Но, опять-таки, кроме статуса выполнения пишет путь распаковки

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 14:44 24-02-2007
tavria2



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

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 15:43 24-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
Вот что натворил:
 
 
StatusDlg.Show(MB_ICONINFORMATION, false);
 
StatusDlg.SetTitle("Подготовка просмотра")
 
Zip.Extract(cZipFileName, {playmovie}, _TempFolder, true, false, "*********", 0, 1 );
    
 
StatusDlg.SetMeterPos (1);
 
StatusDlg.SetStatusText("Статус выполнения");
    
StatusDlg.Hide();
 
Но нерабочее...
 
Подскажи, пожалуйста, а то я себе голову сломаю.

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 17:55 24-02-2007
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
countryman
Для изменения статусных сообщений нужно использовать ф-цию CallBack:

Код:
function CallBack (sPath, nPercent, nStatus)
    if nStatus == ZIP_STATUS_MAJOR then
        StatusDlg.SetTitle("Подготовка просмотра");
        StatusDlg.SetMessage("Пожалуйста подождите...");
        StatusDlg.SetStatusText("Выполнено: ".. nPercent .."%");
        StatusDlg.SetMeterPos(nPercent);
        StatusDlg.SetMeterRange(1, 100);
    end
end
 
StatusDlg.Show(MB_ICONINFORMATION, false);  
Zip.Extract(cZipFileName, {playmovie}, _TempFolder, true, false, "*********", 0, CallBack);  
StatusDlg.Hide();

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 19:24 24-02-2007
countryman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
Все превосходно работает!
Спасибо тебе огромное!!!
ЗЫ. Тоже смотрел в сторону CallBack, но не смог... В синтаксисе не силен

Всего записей: 22 | Зарегистр. 22-02-2007 | Отправлено: 19:46 24-02-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-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru