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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
777Dima
Немного расширенный поиск.
  • На кнопку "Поиск" или на шорткат (н-р, Ctrl+F):

    Код:
    strTextForSearch = Input.GetText("Input1");
    local tblSearchRes = RichText.FindText("RichText1", strTextForSearch, 1, -1, false, false);
    RichText.SetSelection("RichText1", tblSearchRes.Start, tblSearchRes.End);
    nNextStartPos = tblSearchRes.End;

  • На кнопку "Найти далее" или шорткат (н-р, F3):

    Код:
    function FindNext()
        if (strTextForSearch ~= "") and (nNextStartPos ~= nil) then
            local tblSearchRes = RichText.FindText("RichText1", strTextForSearch, nNextStartPos, -1, false, false);
            if (tblSearchRes ~= nil) then
                RichText.SetSelection("RichText1", tblSearchRes.Start, tblSearchRes.End);
                nNextStartPos = tblSearchRes.End + 1;
            else
                local nBut = Dialog.Message("", "Просмотр документа закончен.\r\n\r\nНачать поиск заново?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
                if (nBut == 6) then
                    nNextStartPos = 1;
                    FindNext();
                end
            end
        end
    end
    FindNext();

  • Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 16:11 21-12-2008 | Исправлено: Zloy_Gelud, 16:12 21-12-2008
    777Dima



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud
    Собрался модернизировать поиск сам. Глянул, а тут уже все готово. Копируй и только...
    Ну спасибо тебе...Zloy_Gelud!
     
    Небольшая поправка. Если поле ввода пустое то так:
     

    Код:
     
    strTextForSearch = Input.GetText("Input1");  
     
    if (strTextForSearch ~= "") then
    local tblSearchRes = RichText.FindText("RichText1", strTextForSearch, 1, -1, false, false);  
    RichText.SetSelection("RichText1", tblSearchRes.Start, tblSearchRes.End);  
    nNextStartPos = tblSearchRes.End;
    else
       if (strTextForSearch ~= nil) then
        Dialog.Message("", "Поле поиска не заполнено!.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
    end
    end
     

    Тогда как сделать если символ не найден?

    Всего записей: 27 | Зарегистр. 18-04-2008 | Отправлено: 16:34 21-12-2008 | Исправлено: 777Dima, 18:43 21-12-2008
    Zloy_Gelud



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

    Цитата:
    Если поле ввода пустое то так:


    Цитата:
    Тогда как сделать если символ не найден?

    Держи:

    Код:
    strTextForSearch = Input.GetText("Input1");
    -- если поле поиска пустое
    if (strTextForSearch == "") then
        Dialog.Message("", "Поле поиска не заполнено!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
    else
        local tblSearchRes = RichText.FindText("RichText1", strTextForSearch, 1, -1, false, false);
        -- если ничего не найдено
        if (tblSearchRes == nil) then
            Dialog.Message("", "По данному запросу не было ничего найдено.\r\n\r\nПопробуйте изменить строку поиска.", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
        else
            RichText.SetSelection("RichText1", tblSearchRes.Start, tblSearchRes.End);
            nNextStartPos = tblSearchRes.End;
        end
    end

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



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Все теперь ясно. Ещё раз Спасибо!

    Всего записей: 27 | Зарегистр. 18-04-2008 | Отправлено: 18:51 21-12-2008 | Исправлено: 777Dima, 18:54 21-12-2008
    tavria2



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

    Цитата:
    каким значениям параметра Sys Color в функции WinApi.GetSysColor соответствуют цвета 1 и 2 на рисунке?

    1. COLOR_WINDOW  = 5
    2. COLOR_BTNFACE = 15

    Цитата:
    И возможно ли сделать, чтобы границы проекта не были „втопленными“, а были как на рисунке?

    Код:
    -- API-константы
    GWL_EXSTYLE = -20
     
    hWnd = Application.GetWndHandle(); -- handle окна
    WinApi.SetWindowLong(Application.GetWndHandle(), GWL_EXSTYLE, 0, false); -- новый расширенный стиль окна
     
    -- извращение для перерисовки окна
    nWidth = Window.GetSize(Application.GetWndHandle()).Width;
    nHeight = Window.GetSize(Application.GetWndHandle()).Height;
    Window.SetSize(hWnd, nWidth + 1, nHeight + 1);
    Window.SetSize(hWnd, nWidth, nHeight);

    Цитата:
    Можно ли установить Листбоксу стиль LBS_MULTICOLUMN и LVM_SETCOLUMNA (LVM_FIRST + 26)?  

    Cтиль LBS_MULTICOLUMN установить можно, а вот с LVM_SETCOLUMNA - это для объекта ListView, которого к сожалению нет в AMS.
    Код:
    -- API-константы
    GWL_STYLE = -16
    LBS_MULTICOLUMN = 512
    LB_SETHORIZONTALEXTENT = 404
     
    hWnd = ListBox.GetProperties("ListBox1").WindowHandle; -- hanle Listbox
    WinApi.SetWindowLong(hWnd, GWL_STYLE, LBS_MULTICOLUMN, true); -- стандартный стиль ListBox
     
    -- добавление записей в ListBox
    result = ListBox.AddItem("ListBox1", "Col1Row1\tCol2Row1\tCol3Row1", "");
    result = ListBox.AddItem("ListBox1", "Col1Row2\tCol2Row2\tCol3Row2", "");
    result = ListBox.AddItem("ListBox1", "Col1Row3\tCol2Row3\tCol3Row3", "");
     
    nScrollLength = 400 -- длина прокрутки в пикселях (экспериментально)
    DLL.CallFunction("user32.dll", "SendMessageA", hWnd..","..LB_SETHORIZONTALEXTENT..","..nScrollLength..",0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
     
    -- извращение для перерисовки ListBox
    nWidth = ListBox.GetSize("ListBox1").Width;
    nHeight = ListBox.GetSize("ListBox1").Height;
    ListBox.SetSize("ListBox1", nWidth + 1, nHeight + 1);
    ListBox.SetSize("ListBox1", nWidth, nHeight);

    P.S. для примеров требуется плагин WinApi.

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 00:49 22-12-2008 | Исправлено: tavria2, 18:08 22-12-2008
    servint



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tavria2
     
    Скажи пожалуйста можно ли как нибудь обойти проблему потери фокуса диалоговых окон в версии 7.5? Т.е когда запускается диалоговое окно, оно по умолчанию не имеет фокуса, т.е ведет себя так, как будто у него еще одно дочернее окно открыто.
     
    Можно ли какой-то функцией вернуть окну фокус при его открытии?
    Заранее благодарен.
     
    Обнаружил, что проблема появляется из-за использования плагина Skin.
    Неужели придется из-за этого от него отказаться, а не хотелось бы.

    Всего записей: 37 | Зарегистр. 02-04-2007 | Отправлено: 02:26 22-12-2008 | Исправлено: servint, 08:54 22-12-2008
    tavria2



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

    Код:
    -- Установка фокуса на указанное окно
    hWnd=Application.GetWndHandle();
    DLL.CallFunction("user32.dll", "SetFocus", hWnd, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);

    Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 10:25 22-12-2008 | Исправлено: tavria2, 10:26 22-12-2008
    servint



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tavria2
     
    Это уже пробовал, не помогает. Фокус все равно не восстанавливается.
    Т.е в самом скине предусмотрен дизайн для окна с фокусом и для окна которое его теряет (например открывается дочернее). Так вот все диалоги открытые через DialogEx не имеют этого фокуса.  
     
    Вот тестовый проект, посмотри если не трудно:
    Ссылка

    Всего записей: 37 | Зарегистр. 02-04-2007 | Отправлено: 13:14 22-12-2008 | Исправлено: servint, 13:16 22-12-2008
    Zloy_Gelud



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

    Цитата:
    И возможно ли сделать, чтобы границы проекта не были „втопленными“, а были как на рисунке?

    Оказалось работает и так (On Preload):

    Код:
    WinApi.SetWindowLong(Application.GetWndHandle(), -20, 0, false);

    Все остальное обязательно?

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    servint
    Экспортируй проект в .apz, а затем выложи.

    Zloy_Gelud

    Цитата:
    Все остальное обязательно?  

    Если ты имеешь ввиду передергивание размера окна, то это не обязатьельно для On Preload, но если ты поменяешь стиль когда окно уже отображено, то тогда стиль не изменится до изменения размеров окна.
     
    Да, можешь удалить API-константы:
    WS_EX_CLIENTEDGE = 512  
    WS_EX_STATICEDGE = 131072  
    WS_EX_WINDOWEDGE = 256  
     
    Эти константы отвечают за выпуклость, впуклость окна, которые можно подставлять в расширенный стиль окна.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tavria2
    Применил стиль WS_EX_STATICEDGE - стало еще лучше.    

    Цитата:
    Если ты имеешь ввиду передергивание размера окна, то это не обязатьельно для On Preload, но если ты поменяешь стиль когда окно уже отображено, то тогда стиль не изменится до изменения размеров окна.

    Кхм..У меня почему-получилось и без передергивания размеров окна. Вставил на On Click Labela'a:

    Код:
    WinApi.SetWindowLong(Application.GetWndHandle(), -20, 131072, false);

    и стиль поменялся.
     
    Добавлено:
    Понял почему..потому что прикручен плагин Skin..
     
    Добавлено:
    Кстати с плагином Skin подругому происходит перерисовка. Попробывал его убрать и использовать стиль WS_EX_STATICEDGE и уже не понравилось оформление .. да и к тому же без передергивания размеров стиль не изменился даже если код на On Preload вставлен. Этот плагин наверно использует свой рантайм для перерисовки окна..

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



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

    Всего записей: 25 | Зарегистр. 25-05-2008 | Отправлено: 12:57 24-12-2008
    Zloy_Gelud



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

    Код:
    strImportFile = "AutoPlay\\Docs\\reg.reg";
    Shell.Execute("reg.exe", "open", "import \""..strImportFile.."\"", "", SW_SHOWNORMAL, false);

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



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    попробовал не выходит,  нужные данные в реестре там где должны быть не появляются

    Всего записей: 25 | Зарегистр. 25-05-2008 | Отправлено: 14:52 24-12-2008
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Taufon
    Только что проверил - всё работает. С путями все нормально?  
    З.Ы. Выложи содержимое файла под тег [more][/more], у себя проверю.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 15:03 24-12-2008
    Taufon



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    все нашел в чем проблема, разбил  файл реестра на более мелкие составляющие и все  заработало спс

    Всего записей: 25 | Зарегистр. 25-05-2008 | Отправлено: 16:11 24-12-2008
    klm2

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с решением такой задачи:
     
    Нужно открывать кликом по кнопке веб-страницу только в Internet Explorer независимо от того, какой браузер установлен по умолчанию, если пользователь отметил флажок Открыть в IE. Как добиться того, чтобы винда запускала этот файл только в IE?

    Всего записей: 1 | Зарегистр. 02-01-2009 | Отправлено: 13:22 02-01-2009
    lorents



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

    Код:
    File.Run(_ProgramFilesFolder.."\\Internet Explorer\\iexplore.exe", "http://mail.ru/", _TempFolder, SW_SHOWNORMAL, true);

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 14:42 02-01-2009
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такой вопрос, хочу сделать что проект мог разархивировать архив 7-zip'а
    как это сделать не пойму
    параметры  

    Код:
    7z.exe x архив.7z

    как сделать чтоб проект показывал процент разархивации?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:40 02-01-2009
    Zloy_Gelud



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

    Цитата:
    как сделать чтоб проект показывал процент разархивации?

    Я етого тоже увы не знаю (но наверняка есть сторонняя либа, которая может передавать процент разархивации), ну а просто разохивировать можно так:

    Код:
    -- путь к архиватору
    local strPathTo7ZIP = Registry.GetValue(HKEY_CURRENT_USER, "Software\\7-Zip", "Path", true);
    -- путь к архиву
    local strPathToArhive = _SourceFolder.."\\AutoPlay.7z";
    -- путь к папке для извлеченя архива
    local strExtractDir = "C:\\";
    if (strPathTo7ZIP ~= "") then
        File.Run(strPathTo7ZIP.."\\7z.exe", "x -o".."\""..strExtractDir.."\" \""..strPathToArhive.."\"", "", SW_SHOWNORMAL, false);
    end

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 00:50 03-01-2009
       

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