Ru-Board.club
← Вернуться в раздел «Программы»

» Autoplay Media Studio

Автор: tavria2
Дата сообщения: 08.06.2008 22:03
LEDRA

Цитата:
...как отследить что файл щас занят...

Попробуй File.IsInUse.
Автор: qvarc
Дата сообщения: 11.06.2008 16:36
Здравствуйте! Помогите пожалуйста как создать окно в котором прокручиваются скролбарам несколько программ их описание, скриншот к каждой из программ, и кнопки установки для каждой программы? Как это вобще сделать!!! Я новичок в этом деле и мне это очень необходимо!
Автор: Zloy_Gelud
Дата сообщения: 11.06.2008 17:12
qvarc -- такое возможное только созданием Web-страницы со всем тем, что ты перечислил и загрузки ее в Web-объект.
Автор: GOOSE
Дата сообщения: 11.06.2008 17:41
qvarc
Новичкам строго рекомендуется почитать шапку.
В самом верху есть статьи, ниже есть примеры.
Автор: Robby
Дата сообщения: 14.06.2008 11:22
У кого-нибудь работает это:
Код: SlideShow.DeleteSlide("SlideShow1", -1)
Автор: tavria2
Дата сообщения: 16.06.2008 21:51
Robby

Цитата:
Use -1 to remove all slides. По идее должно удалять все слайды из объекта, а в реальности ничего не удаляется.

Все удаляется, просто после удаления слайдов, нужно сделать перерисовку (Redraw) объекта, но т.к. в этом объекте нет св-ва отвечающего за перерисовку, то делаем перерисовку страницы - Page.Redraw();.
Автор: popovvb
Дата сообщения: 04.07.2008 05:25
Подскажите, пожалуйста, как сделать чтобы ComboBox заполнялся данными из файла построчно, например: С:\\1.тхт
в 4 версии было получение данных из конкретной строки текстового файла, а как это можно реализовать в 6?
Автор: 40rt
Дата сообщения: 05.07.2008 20:24
Нужно в проекте сделать страницу, где пользователь мог бы создать текстовый комментарий и добавить к нему картинку.
С текстом проблем нет, а вот как сделать чтоб у юзера по нажатию кнопки вылезало окошко, где можно выбрать файл картинки для загрузки в "AutoPlay\\Images\\" не могу придумать. Может кто знает?
Автор: tavria2
Дата сообщения: 06.07.2008 10:44
popovvb
Цитата:
Подскажите, пожалуйста, как сделать чтобы ComboBox заполнялся данными из файла построчно, например: С:\\1.тхт
Помести данные в таблицу с помощью TextFile.ReadToTable и в цикле добавляй по одной записи в ComboBox.

40rt
Цитата:
...как сделать чтоб у юзера по нажатию кнопки вылезало окошко, где можно выбрать файл картинки...
См. справку Dialog.FileBrowse.
Автор: popovvb
Дата сообщения: 06.07.2008 14:47
tavria2


Цитата:
Помести данные в таблицу с помощью TextFile.ReadToTable и в цикле добавляй по одной записи в ComboBox.


Если можно пример, у меня не получается! Заранее благодарен.
Автор: tavria2
Дата сообщения: 06.07.2008 15:33
popovvb
Код: tItems = TextFile.ReadToTable("C:\\1.txt");
for n, sItem in tItems do
ComboBox.AddItem("ComboBox1", sItem, "");
end
Автор: 40rt
Дата сообщения: 07.07.2008 08:37

Цитата:
См. справку Dialog.FileBrowse.

Спасибо!

Еще вопрос - параметр TextColor, у него тип number - в каком диапазоне значений можно вводить цвет? В справке не нашел...

Автор: tavria2
Дата сообщения: 07.07.2008 10:06
40rt
Используй Math.RGBToNumber для преобразования RGB-значения цвета в десятичное значение. Например:
nColor = Math.RGBToNumber(255,255,255)
nColor - будет иметь десятичное значение белого цвета (максимальное значение).
Автор: Zloy_Gelud
Дата сообщения: 10.07.2008 21:37
2ALL

Вот состряпал очередной проект - Авторан для софта.

Автор: popovvb
Дата сообщения: 11.07.2008 23:42
Zloy_Gelud

Если можешь кратко объясни как заполняется база данных на второй странице, а также каким способом эту базу можно изменять.

Выглядит очень приятно.

Зависает, когда нажимаешь Visit Web Site в окне "О программе"
Автор: Zloy_Gelud
Дата сообщения: 12.07.2008 13:02

Цитата:
Если можешь кратко объясни как заполняется база данных на второй странице...

БД не заполняется - она уже заполнена и спокойно себе лежит, ожидая своего вызова .
При клике на тематическую кнопку на первой странице (допустим "Антивирусные программы") ищется аналогичный раздел в БД. А на второй странице объект "Tree" заполняется программами из него.


Цитата:
а также каким способом эту базу можно изменять.

БД покриптована Blowfish. А чтоб можно было ручками править БД делаем соответственно следующее:

Код: sXMLDB = Crypto.BlowfishDecryptString(TextFile.ReadToString("AutoPlay\\Docs\\db.xml"), "ru-board");
TextFile.WriteFromString("C:\\db_dec.xml", sXMLDB, false);
Автор: popovvb
Дата сообщения: 12.07.2008 14:52
Zloy_Gelud

Посмотрел как сделана база данных, очень удобно, думаю можно использовать для разработки программы тестирования, давно хочу сделать, но одному сложно, предлагаю поучаствовать как соавтору, идея, план создания, структура программы уже есть. Если заинтересует пиши в личку.
Автор: 40rt
Дата сообщения: 12.07.2008 15:05
Почему когда я использую
Код: ListBox.InsertItem("my_list", 1, text, "data")
Автор: tavria2
Дата сообщения: 12.07.2008 15:55
40rt

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

У тебя возможно в свойствах ListBox включена сортировка и он отображает элементы в упорядоченном виде.
Автор: Zloy_Gelud
Дата сообщения: 12.07.2008 16:03
40rt

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

Только что попробывал, добавляется в начало списка. Возможно у тебя стоит галка на сортировке?
-- уже опередили)..
Автор: 40rt
Дата сообщения: 12.07.2008 18:25

Цитата:
У тебя возможно в свойствах ListBox включена сортировка и он отображает элементы в упорядоченном виде

Да, точно, была галочка. Но когда её убрал вообще ничего добавлятся не стало...
Что я не так делаю?
Вот специально создал чистый ListBox и Hotspot, в Hotspot On Click написал
Код: ListBox.InsertItem("ListBox", 1, "test", "test");
Автор: oumser
Дата сообщения: 12.07.2008 19:44
Всем привет! Можно ли на странице запустить постороннее приложение прямо в окне? Т.е. чтоб эта прога отдельно не загружалась.
Автор: Zloy_Gelud
Дата сообщения: 12.07.2008 23:45
40rt

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


oumser


Цитата:
Можно ли на странице запустить постороннее приложение прямо в окне?

Интересно как ты себе это представляешь...
Автор: 40rt
Дата сообщения: 13.07.2008 06:32

Цитата:
Попробуй создать новый проект и прописать этот код.. если не будет добавлятьсо - значит баг в у тебя в AMS, иначе - баг в твоем проекте.

Попробовал - не работает ни в АМС7.0 ни в 6.0... не могут же у меня в обоих версиях одинаковые баги быть?
Автор: Robby
Дата сообщения: 13.07.2008 10:06
Zloy_Gelud
Хорошая идея проекта, понравилось.

Цитата:
Руками я БД ее не собираю..для етого у меня заготовлен спец. скриптик)).

А можно с этого места подробнее?

В таком виде, с использованием БД, при каждом изменении состава программ требуется ручная правка этой базы. Было бы неплохо сделать, чтоб при запуске проекта с HDD, запускался конфигуратор, который создавал бы БД , а при запуске уже с CD, конфигуратор отключался.
Пример такой реализации есть в WPI, там при запуске с HDD появляются кнопки настройки и конфигурации проекта, что позволяет легко редактировать и изменять настройки содержание проекта.
Автор: Zloy_Gelud
Дата сообщения: 13.07.2008 11:38
40rt -- Руссификатор используешь?

Добавлено:
Robby

Вот [more=скрипт]
Код: -- Функция возвращает имя папки из пути к ней
FolderEx={};
function FolderEx.GetName(sPath)
    if (String.Right(sPath, 1) == "\\") then
        sPath = String.Left(sPath, String.Length(sPath) - 1);
    end
    local nInd = String.ReverseFind(sPath, "\\", false);
    if (nInd ~= -1) then
        sName = String.Right(sPath, String.Length(sPath) - nInd);
    else
        sName = sPath;
    end
    return sName;
end

-- Функция возвращает имя инстоллятора или пустую строку "", если он не найден
function GetInstallFile(sPath)
    -- путь к инстоллятору
    sPath_InstallFile = "";
    -- ищем файлы по маске cName_SetupFile
    local tPaths_SetupFile = File.Find(sPath, "setup.*", false, false, nil);
    -- если нашли
    if (tPaths_SetupFile) then
        -- если нашли один файл
        if (Table.Count(tPaths_SetupFile) == 1) then
            -- значит это и есть инстоллятор
            sPath_InstallFile = tPaths_SetupFile[1];
        --elseif (Table.Count(tPathsSetup) > 1) then
            --sPath_InstallFile = sPath;
        end
    -- если не нашли
    else
        -- ищем экзешники
        local tPaths_ExeFile = File.Find(sPath, "*.exe", false, false, nil);
        -- также ищем мсишники
        local tPaths_MsiFile = File.Find(sPath, "*.msi", false, false, nil);    
        -- если нашли экзешники
        if (tPaths_ExeFile) then
            -- если нашли один экзешник и не нашли мсишников
            if (Table.Count(tPaths_ExeFile) == 1 and tPaths_MsiFile == nil) then
                -- значит этот файл - инстоллятор
                sPath_InstallFile = tPaths_ExeFile[1];
            --else
                --sPath_InstallFile = sPath;
            end
        -- не нашли экзешников
        else
            -- а нашли мсишники
            if (tPaths_MsiFile) then
                -- если один мсишник
                if (Table.Count(tPaths_MsiFile) == 1) then
                    -- тогда он и есть инстоллятор
                    sPath_InstallFile = tPaths_MsiFile[1];
                --else
                    --sPath_InstallFile = sPath;
                end
            --else
                --sPath_InstallFile = sPath;
            end
        end
    end    
    if (sPath_InstallFile ~= "") then
        return String.SplitPath(sPath_InstallFile).Filename..String.SplitPath(sPath_InstallFile).Extension;
    else
        return "";
    end
end

-- Узнаем размер файла
function GetFileSize(sFile)
    local nBytes = File.GetSize(sFile);
    sSizeFile = String.GetFormattedSize(nBytes, FMTSIZE_AUTOMATIC, true);
    -- возвращаем размер файла
    return sSizeFile;
end

-- описание программы
function GetDescription(sPath)
    -- ищем файлы а папке с программой по маске
    local tPaths_DescFile = File.Find(sPath, "readme.*", false, false, nil);
    -- если нашли
    if (tPaths_DescFile) then
        -- считываем содержимое первого файла в таблице в строку
        sDesc = TextFile.ReadToString(tPaths_DescFile[1]);
    -- если не нашли
    else
        -- произвольное сообщение
        sDesc = "Описание к данной программе отсутствует.";
    end
    -- возвращаем описание к программе
    return sDesc;
end

-- web-адресс программы
function GetUrl(sPath)
    -- урл-адрес
    sURL = "";
    -- поиск урл-файлов
    local tPath_UrlFile = File.Find(sPath, "*.url", false, false, nil, nil);
    -- если нашли
    if (tPath_UrlFile) then
        -- выбираем первого в списке
        local sPath_UrlFile = tPath_UrlFile[1];
        -- считываем урл-адрес (без "http:\\")
        local sIn = String.Mid(INIFile.GetValue(sPath_UrlFile, "InternetShortcut", "URL"), 8, -1);
        --если имеется завершающая "/"
        if (String.Right(sIn, 1) == "/") then
            -- удвляем ее
            sURL = String.Left(sIn, String.Length(sIn) - 1);
        end
    end
    -- возвращаем урл-адрес
    return sURL;
end

-- Возвращает имя скриншота программы
function GetImage(sPath)
    local sFullImg = "";
    local tMasks = {"*.png", "*.jpg", "*.bmp", "*.gif", "*.tga", "*.tiff"};
    for n, cMask in tMasks do
        local tFullPaths = File.Find(sPath, cMask, false, false, nil, nil);
        if (tFullPaths) then
            sFullImg = tFullPaths[1];
        end
    end
    return String.SplitPath(sFullImg).Filename..String.SplitPath(sFullImg).Extension;
end

-- возвращает имя руссификатора
function GetRusFile(sPath)
    -- ищем файлы по маске
    local tPaths_RusFile = File.Find(sPath, "rus.*", false, false, nil);
        -- если нашли
        if (tPaths_RusFile) then
            -- руссификатор - первый в таблице файл
            sPath_RusFile = tPaths_RusFile[1];
        else
            sPath_RusFile = "";
        end
    --возвращаем путь к руссификатору
    return String.SplitPath(sPath_RusFile).Filename..String.SplitPath(sPath_RusFile).Extension;
end

-- возвращает имя патча
function GetCrackFile(sPath)
    -- ищем файлы по маске
    local tPaths_CrackFile = File.Find(sPath, "crack.*", false, false, nil);
        -- если нашли
        if (tPaths_CrackFile) then
            -- патч - первый в таблице файл
            sPath_CrackFile = tPaths_CrackFile[1];
        else
            sPath_CrackFile = "";
        end
    --возвращаем путь к патчу    
    return String.SplitPath(sPath_CrackFile).Filename..String.SplitPath(sPath_CrackFile).Extension;
end

-- создание БД
sFolderPath = Dialog.FolderBrowse("Please select a folder:", "C:\\");
if (sFolderPath ~= "CANEL") and (sFolderPath ~= "") then
    local sXMLDB = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\r\n<database>\r\n";
    tRazdelNames = Folder.Find(sFolderPath.."\\", "*", false, nil);
    if (tRazdelNames) then
        for n, cRazdelName in tRazdelNames do
            tProgramNames = Folder.Find(cRazdelName.."\\", "*", false, nil);
            if (tProgramNames) then
                for n, cProgramName in tProgramNames do
                    sXMLDB = sXMLDB.."<item><name>"..FolderEx.GetName(cProgramName).."</name>";
                    ----------------------------------------------------------
                    sProgramFile=GetInstallFile(cProgramName);
                    sProgramSize = GetFileSize(cProgramName.."\\"..sProgramFile);
                    sXMLDB = sXMLDB.."<size>"..sProgramSize.."</size>";
                    ----------------------------------------------------------
                    sProgramDesc = GetDescription(cProgramName);
                    sXMLDB = sXMLDB.."<desc>"..sProgramDesc.."</desc>";
                    ----------------------------------------------------------
                    sPrgURL = GetUrl(cProgramName);
                    sXMLDB = sXMLDB.."<url>"..sPrgURL.."</url>";
                    ----------------------------------------------------------
                    sPrgImg = GetImage(cProgramName);
                    sXMLDB = sXMLDB.."<img>"..sPrgImg.."</img>";
                    ----------------------------------------------------------
                    sXMLDB = sXMLDB.."<file>"..GetInstallFile(cProgramName).."</file>";
                    ----------------------------------------------------------
                    sXMLDB = sXMLDB.."<rus>"..GetRusFile(cProgramName).."</rus>";
                    ----------------------------------------------------------
                    sXMLDB = sXMLDB.."<crack>"..GetCrackFile(cProgramName).."</crack>";
                    ----------------------------------------------------------
                    sXMLDB = sXMLDB.."<razdel>"..FolderEx.GetName(cRazdelName).."</razdel></item>\r\n\r\n";
                end
            end
        end
        sXMLDB = sXMLDB.."</database>";
    end
    
    XML.SetXML(sXMLDB);
    
    -- непошифрованная БД
    --XML.Save("C:\\db_dec.xml");

    sEncDB = Crypto.BlowfishEncryptString(sXMLDB, "ru-board", 0);
    TextFile.WriteFromString("C:\\db.xml", sEncDB, false);    
end
Автор: 40rt
Дата сообщения: 13.07.2008 13:57

Цитата:
40rt -- Руссификатор используешь?

Нет, ну да черт с ним, сделал по другому, поскольку у меня перед добавлением в ListBox добавляется запись в файл, то просто потом пишу в ListBox из этого файла в обратном порядке, используя ListBox.AddItem. Так всё работает.

Вопрос - как узнать сколько знаков после запятой во введенном в Input числе? Диапазон от 0.0001 до 999.99.
Ниче в голову не лезет...
Автор: Zloy_Gelud
Дата сообщения: 13.07.2008 14:15
40rt


Код: sNumber = Input.GetText("Input1");
nPointPos = String.ReverseFind(sNumber, ".", false);
if (nPointPos ~= -1) then
    nChars = String.Length(String.Mid(sNumber, nPointPos + 1, -1));
    result = Dialog.Message("Notice", "После запятой "..nChars.." знака-(ов)", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: Robby
Дата сообщения: 13.07.2008 17:28
Zloy_Gelud
Спасибо за дополнительные инструкции. В WPI все нужно набивать ручками это точно, я просто говорил о возможности правки содержания из самого проекта пока он находится на жестком диске. А со скриптом создания БД такую доработку несложно сделать и самому.
Автор: 40rt
Дата сообщения: 13.07.2008 19:09
Zloy_Gelud, спасибо, то что нужно!

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Symantec Endpoint Protection - SEP


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.