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

» Autoplay Media Studio

Автор: lorents
Дата сообщения: 01.07.2009 14:15
tavria2
решил все таки без иконок, поставлю свою картинку
Автор: saavaage
Дата сообщения: 01.11.2009 16:49
tavria2
поступила инф по машине с некорректным отображением:
на борту 3,01 Гб
меню показывает 2,5 Гб
карта встроенная, под нее хозяин выделил памяти (вроде 512 мб)
Автор: Witcherfx
Дата сообщения: 01.07.2009 14:34
Здравствуйте. У меня вопрос. Я понимаю, он может показаться Вам несколько глупым, но я хотел бы разобраться, наконец, с созданием функции "callback"

В справке есть следующий пример:

Код:
-- Callback function for HTTP.Download --

Первый вопрос. Объясните пожалуйста значения параметров данных в скобках, какое значение имеет "n"? Я предполагаю что это просто название переменной. Почему этот пример работает, а я не могу понять где указываются эти самые переменные в скобках?

function DownloadCallback (nDownloaded, nTotal, TransferRate, SecondLeft, SecondsLeftFormat, Message)

Второй вопрос. Опять таки "n"... Правда ли что переменные с этим символом в начале собственно и указывают эти переменные, но тогда где числовое представление? Откуда берётся числовая информация?

sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true);
sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true);

Третий вопрос. "SecondsLeftFormat" - это что за параметр где я могу задать его значение? Где я могу почитать о этих форматах? если можно не общую ссылку на справку, а конкретный раздел где я могу узнать информацию.

StatusDlg.SetMessage("Currently downloading file . . . Time Left: " .. SecondsLeftFormat);

StatusDlg.SetStatusText("Downloaded: " .. sDownloaded .. " / " .. sTotal);

StatusDlg.SetMeterPos((nDownloaded / nTotal) * 65534);
end


Четвёртый вопрос. Почему нижеследующие вопросы не прописаны в самой функции выше? Объясните, пожалуйста, какой в этом смысл?.

StatusDlg.Show(0, false);

StatusDlg.SetTitle("Downloading . . . ");

StatusDlg.SetMeterRange(0, 65534); -- Пятый вопрос. Число "65534" - оно случайно или это число максимально допустимое значение чего-то?

HTTP.Download("http://www.yourdomain.com/downloads/update.exe", _TempFolder.."\\update.exe", MODE_BINARY, 20, 80, nil, nil, DownloadCallback);

StatusDlg.Hide();

Автор: tavria2
Дата сообщения: 01.11.2009 17:46
saavaage

Цитата:
на борту 3,01 Гб

В свойсвах системы XP - отображается доступная память, а для Vista - физически установленная (это маркетинговый ход). Я думаю понятно, что для работы важен объем доступной памяти, а не физически воткнутой.

Цитата:
меню показывает 2,5 Гб
карта встроенная, под нее хозяин выделил памяти (вроде 512 мб)

Ну все правильно - AMS, как и положено показывает доступную память (2,5 + 0,5 = 3).

Добавлено:
lorents

Цитата:
Кого интересует русская справка, то можно воспользоваться программой GridinSoft CHM Editor, там есть функция перевода

Мне кажется, что после такого перевода - опять вернешся к английской справке.
Автор: pavki
Дата сообщения: 01.11.2009 18:06
saavaage А можно сделать отображение папок?
Автор: German
Дата сообщения: 01.07.2009 20:57
Witcherfx

что-то не получается кнопкой перейти на Page1
событие Page.Jump("Page1"); не работает, да по всему видать и не должно работать при попытке добавить обект Ctrl+I в списке ТОЛЬКО объекты окна диалог и ничего более.
Автор: saavaage
Дата сообщения: 01.11.2009 18:15
pavki
не совсем понимаю, о чем речь идет. Если речь идет о группах -> отдельные программы (как в bs post installer или wpi), то не уверен, что это для меня по силам сейчас будет. Как сделать отображение групп с дальнейшим их раскрытием (даже не знаю, куда рыть). Но по-моему где-то на этом форуме это уже обсуждали. Попробуте сделать версии для печати (помоему всего 3 файла mht-получится) и поиском через contl - F...

Добавлено:
pavki, подумал - попробуйте копните в сторону объекта дерево....
Автор: Witcherfx
Дата сообщения: 01.07.2009 21:05

Цитата:
что-то не получается кнопкой перейти на Page1
событие Page.Jump("Page1"); не работает, да по всему видать и не должно работать при попытке добавить обект Ctrl+I в списке ТОЛЬКО объекты окна диалог и ничего более.


На самом деле и не должно работать... Прошу прощения, не так просто. Нужно выставить не перейти, а закрыть диалог... Тогда диалог закроется и будет видна главная страница с которой вы её вызывали... всё таки это диалог, а не страница.

Добавлено:
Мда ... вопрос и вправду глупый... Я так увлёкся изучением примеров, что забыл прочитать описание Action...

Если кто-то будет задаваться теми же вопросами на всякий случай напишу:

Код:

function DownloadCallback (nDownloaded, nTotal, TransferRate, SecondLeft, SecondsLeftFormat, Message)

[[где "function" - это тип данных, а "(nDownloaded, nTotal, TransferRate, SecondLeft, SecondsLeftFormat, Message)" - обязательные аргументы для функции DownloadCallback

Message - Чистая строка ("") или информационное сообщение, отправляемое сервером, например, "Connecting to Server."
SecondsLeftFormat - Предполагаемое число секунд отформатированное как строка в формате: ""MM:SS".
SecondLeft - Предполагаемое время загрузки.
TransferRate - Текущая передача в Килобайтах в секунду.
nTotal - arg 1
nDownloaded - arg 2 (пока несовсем понял алгоритм работы..., но "n" никакое не значение, просто часть имени аргумента)]]
Автор: pavki
Дата сообщения: 01.11.2009 18:37
Речь идёт о отображениях в списка не программ а ПАПОК
например: в дистрибутиве лежит папка с прагой "7 zip" хотелась бы отобразить папку с названием а не setup.exe

ps: Почему?... да потому что криво получается Праги все одной папке разбросаны!



Автор: saavaage
Дата сообщения: 01.11.2009 18:41
pavki, настоятельно рекомендую слазить сюда: http://www.azman.info/ams/
Автор: GOOSE
Дата сообщения: 02.07.2009 14:53

Цитата:
какое значение имеет "n"?


В общем, тут все просто
Справку полезно хотя бы раз прочесть всю, а не только по интересующим действиям
При обозначении имен переменных хорошим тоном считается использование имен, начинающихся с маленьких букв, обозначающих тип значений переменной:
n - number, т.е. числовое значение, число
s - string, т.е. строчный, строка
t - table, т.е. табличный, таблица

В принципе, программе все равно , она сама определяет тип значения автоматически. Такое правило позволяет самому программисту не путаться при проверке\разборе кода...
Автор: pavki
Дата сообщения: 01.11.2009 18:52
saavaage Спасибо за помощь будем разбирается
только завтра, а то сегодня голова болит (целый день за компом)

Если у вас появятся идеи, пишите!

Автор: tavria2
Дата сообщения: 02.07.2009 16:19
Имитация системных диалоговых окон. (Требуется AMS 7.5 и выше).

Возможности:
системные иконки, звуки, фон текущей темы Windows
скрытие иконки заголовка окна
диалоги возвращают код нажатой кнопки
пример демонстрирует использование чекбокса в диалоговом окне...

Недостатки:
невозможно назначить кнопку по умолчанию
кнопки не поддерживают нажатие Enter

DialogExSystem.apz | зеркало [150 Кб].
Автор: lorents
Дата сообщения: 01.11.2009 20:09
tavria2

Цитата:
Мне кажется, что после такого перевода - опять вернешся к английской справке.

Там переводит translate.google, так что перевод нормальный
Автор: saavaage
Дата сообщения: 01.11.2009 20:14
pavki
как я и думал, решение с tree оказалось верным.
Вводные:
1. Требование насчет одинаковых названий exe и txt файлов осталось без изменения.
2. Я добавил еще и картинки
3. Папки с софтом у меня размещены в Docs и имеют следующую структуру:
Docs ->
Systems ->
proga1.exe, proga1.txt, proga1.jpg
progaX.exe, progaX.txt, progaX.jpg
Office ->
proga1.exe, proga1.txt, proga1.jpg
progaX.exe, progaX.txt, progaX.jpg
и так далее...

Вкратце команды:

1. создаете на 1 листе 3 объекта:
- tree "Soft"
- paragraph1 "output"
- image1
--- место размещения выберите сами, плиз...

2. в tree "Soft" создаете иерархический список программ в виде:
софт к установке
система
программа 1
программа ....
офис
офис 2003
офис .....
и так далее...

--- не забывать прописывать для каждой группы и программы полные пути к exe-файлам (itemdata), например:
AutoPlay\\Docs\\Office\\2003.exe

3. в свойствах tree открываете Script -> On Doble Click и копируете следующее:

tSelected = Tree.GetSelectedNode("Soft");
pRun = Tree.GetNode("Soft", tSelected).Data;
result = File.Run(pRun, "", "AutoPlay\\Docs", SW_SHOWNORMAL, false);


4. Переходите на вкладку On Select и копируете туда:

tSelected = Tree.GetSelectedNode("Soft");
pData = Tree.GetNode("Soft", tSelected).Data;
InfoT = String.Replace(pData, "exe", "txt", false);
InfoI = String.Replace(pData, "exe", "jpg", false);
result = TextFile.ReadToString(InfoT);
Paragraph.SetText("Output", result);
Image.Load("Image1", InfoI);

--- txt-информацию о группах, при желании, тоже легко вывести в тоже окошко, что и о программах.

Вроде все, комрад...

PS Вы случаем не "тихий" софт собрались катать на диск? Если да, то, имхо, не мучайтесь и смело используйте wpi (просто и немного глючновато) или bs post installer (немного больше времени на изучение, но глюков нет). Если надо, ссылку дам. Там уже все заточено под установку софта в автоматическом режиме...
Автор: Witcherfx
Дата сообщения: 02.07.2009 17:26
GOOSE Большое спасибо за ответ!

Я читал справку, описание самого языка, но, к сожалению, ввиду отсутствия опыта программирования, не всё понятно. Во всяком случае то, что хочется реализовать, даётся небольшими шагами. Спасибо за правила хорошего тона. Был бы признателен, если бы можно было ознакомиться с ними полностью... Справка не даёт исчерпывабщей информации о правилах хорошего тона.

Вот нашёл ещё несколько правил хорошего тона:

Цитата:


- при возникновении ошибки в функциях на lua вместо вызова библиотечной функции error() возвращай nil и текст сообщения об ошибке.

- функции, которые могут вызвать error(), вызывай (где возможно) через библиотечную функцию pcall(), для чего лучше использовать идиому protect, описанную в статье Диего Нехаба (diego nehab) finalized exceptions (www.lua-users.org/wiki/finalizedexceptions). также полезно пользоваться идиомой newtry (см. ту же статью).

- проверяй переданные функции параметры на nil. если, например, функция, объявленная с тремя параметрами, вызывается с двумя, то третьему параметру будет присвоен nil.

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

- очень часто ошибки возникают из-за того, что программист забыл написать ключевое слово local перед первым присваиванием локальной переменной и затер таким образом глобальную. следи за областью видимости твоих переменных. в названиях глобальных переменных используй уникальный префикс, например g_. применяй инструменты типа lua lint для проверки использования глобальных переменных. в дистрибутив lua 5.1 входит пример на lua, который настраивает метатаблицу таблицы, содержащей глобальные переменные (“_g”), таким образом, что при добавлении или чтении незарегистрированных глобальных переменных во время выполнения скрипта выдается сообщение об ошибке.

- старайся минимизировать использование глобальных переменных. соблюдай модульность кода. считается хорошим тоном, если один модуль создает только одну глобальную переменную. подробнее о подходах к организации модулей в lua можно прочитать в lua technical note 7: modules & packages роберто иерусалимского (www.lua.org/notes/ltn007.html).



Автор: tavria2
Дата сообщения: 01.11.2009 21:48
lorents

Цитата:
Там переводит translate.google, так что перевод нормальный

DialogEx.Show:
[more=Англоязыйный вариант]Description
Shows a specific dialog in your application at an optional position.

Note: You can show a dialog from a dialog, however you cannot show another instance of a dialog if it is already visible.

Note: You cannot show a dialog while a status dialog is visible.

Tip: You can use the DialogEx.Close action to close the current dialog.

Parameters
DialogName
(string) The name of the dialog to show.

ParentCoordinates
(boolean) Whether the dialog position should be relative to the parent window (application or another dialog) or the screen. If X and Y are set to nil, this setting is ignored and the dialog will be centered on the screen.

X
(number) The optional pixel coordinate (horizontal position) to set for the dialog window. This is the X coordinate of the upper left hand corner of the dialog relative to the screen or parent window, based on the value specified in ParentCoordinates. Set to nil to center the dialog.

Y
(number) The optional Y pixel coordinate (vertical position) to set for the dialog window. This is the Y coordinate of the upper left hand corner of the dialog relative to the screen or parent window, based on the value specified in ParentCoordinates. Set to nil to center the dialog.

Returns
(number) The result of the dialog that is passed to the DialogEx.Close action, or IDCANCEL (2) if the user chose to close the dialog using the close button (X on the title bar) on the window. If an error occurs, -1 is returned. You can use Application.GetLastError to determine whether this action failed, and why.

ResultVariable
When adding an action with the script editor, you can use this field to specify a variable that the return value will be stored in.[/more]
[more=Русскоязычный вариант]Описание
Показывает конкретные Диалоговое в применение на факультативной позиции.

Примечание: Вы можете отобразить диалоговое из диалогового, однако вы не можете показать еще один пример диалога если это уже заметны.

Примечание: Вы не можете показать Диалоговое а Статус диалоговое видна.

Подсказка: Вы можете использовать DialogEx.Close меры, чтобы закрыть текущее диалогового окна.

Параметры
DialogName
(строка) Имя диалогового показать.



ParentCoordinates

(Boolean) Ли диалог позиция должна быть относительно родительского окна (приложение или другое диалоговое) или на экране. Если X и Y настроены на NIL, Этот параметр игнорируется, и диалог будет в центре экрана.

X
(число) Факультативный пикселей координата (горизонтальное положение) установить для диалогового окна. Это X координаты левого верхнего угла диалогового относительно экрана или родительского окна, основанные на стоимости, указанной в ParentCoordinates. Установите в ноль в центре диалогового окна.

Y
(число) Факультативный пиксель координаты Y (вертикальная позиция) установить для диалогового окна. Это у координату верхнего левом углу диалогового по отношению к экрану или родительского окна, основанные на Значение, указанное в ParentCoordinates . Установите в ноль в центре диалогового окна.

Возвращает
(число) Результатом диалог, который передается DialogEx.Close действия или IDCANCEL (2), если пользователь выбрал, чтобы закрыть диалоговое помощью кнопки Закрыть (X в строке заголовка) на окне. Если произошла ошибка, то возвращается -1. Вы можете использовать Application.GetLastError для определения ли это действие не удалось, и почему.

ResultVariable
При добавлении действие с помощью редактора сценариев, можно использовать это поле для указания переменной возвращаемого значения будут храниться в.[/more]

Это нормальный перевод? Я думаю новички много подчерпнут из такой справки.
Автор: lorents
Дата сообщения: 02.07.2009 18:04
tavria2

Цитата:
Имитация системных диалоговых окон.

просто блеск, то что мне надо было. Спасибо.
Автор: Witcherfx
Дата сообщения: 04.07.2009 04:07
Доброго всем дня, подскажите пожалуйста, если в проекте я использую в названиях кнопок и т.п. не стандартные системные шрифты, нужно ли перед запуском системы устанавливать их в систему пользователя? И, если не затруднит, примерный скрипт такой операции, если она нужна конечно.

Добавлено:
Ещё вопрос. Мне хотелось бы сделать одну или ряд функций которые отвечали бы, для начала, только за названия кнопок главного меню и подменю каждой кнопки, задача решена лишь отчасти приведённым ниже кодом, однако есть но... В папке с контентом только первая папка содержит части, остальные три нет. В результате код называет первую кнопку, вторую и... и всё... ну и конечно кнопки с названиями частей. Поскольку мозг уже кипит, трудно сообразить что нужно или не нужно писать. Красным выделил места, которые, на мой взгляд, в ответе за недоработку.
Сразу хочу отметить, что если вдруг будет способ с XML - я не работал с ним вообще никогда и прибавив к этому то, что я только знакомлюсь с Lua...

Код:
-- Функция возвращает путь к папке с контентом--
function fGetContentPath()
    local sContentPath = _SourceFolder.."\\"..(INIFile.GetValue("AutoPlay\\setting.ini", "Main", "SourseFolder"));
    return sContentPath
end

-- Функция используется для поиска удовлетворяющих условие значений в функции ниже--
function fGetPartsName(tPartName)
    local tPrtName = Folder.Find(tPartName, "*", false, nil);
    local gPageObject = Page.EnumerateObjects();
    if (gPageObject ~= nil) then
        for nPartIndex, sNameButton in gPageObject do
            if (String.Left(sNameButton, 4)=="Part" and (Page.GetObjectType(sNameButton)) == OBJECT_BUTTON) then
                for n, s in tPrtName do
                    Button.SetText("Part"..n, String.SplitPath(tPrtName[n]).Filename);
            else...
                end
            end
        end
    end
end

-- Пока эта функция отвечает за названия кнопок основного меню используя названия папок и должна будет называть кнопки подменю используя названия папок внутри тех, которыми названы кнопки меню--
function fSetMenuButName()
    local gPageObject = Page.EnumerateObjects();
    if (gPageObject ~= nil) then
        for nIndex, sNameButton in gPageObject do
            if (String.Left(sNameButton, 6)=="Button" and (Page.GetObjectType(sNameButton)) == OBJECT_BUTTON) then
                local tFoldName = Folder.Find(fGetContentPath(), "*", false, nil);
                for n, s in tFoldName do
                    Button.SetText("Button"..n, String.SplitPath(tFoldName[n]).Filename);
                    fGetPartsName(tFoldName[n])
                end    
            end    
        end
    end
end
Автор: saavaage
Дата сообщения: 01.11.2009 21:57
tavria2, а что случилось с http://www.gooseweb.ru/component/option,com_vfm/Itemid,4/? Есть надежда, что ссылка опять оживет? Я так понял из форумной переписки, что там много интересного лежит...

Еще, возращаясь к нашему разговору про API? я нашел такую ссылку http://www.codenet.ru/progr/delphi/stat/System-Information.php Не подскажете как ей воспользоваться с умом..
Автор: tavria2
Дата сообщения: 04.07.2009 09:29
Witcherfx

Цитата:
подскажите пожалуйста, если в проекте я использую в названиях кнопок и т.п. не стандартные системные шрифты, нужно ли перед запуском системы устанавливать их в систему пользователя?
Нет, используемые шрифты автоматом копируются в проект и корректно работают без установки в систему.
Автор: lorents
Дата сообщения: 01.11.2009 22:02
tavria2

Цитата:
Это нормальный перевод?

Назвать этот перевод нормальным язык не повернется, но если человек очень плохо знает англ. язык, то ему англ. справка вообще не помощник
Можно подвести итог, надо учить английский
Автор: Zloy_Gelud
Дата сообщения: 04.07.2009 12:00
System Progress object
WinProgress Ver:1.0.1.0

Download ~ 64.95 kB
___________________________
Теперь это полноценный action-плагин (.LMD)
Работает с диалоговыми окнами.
Поправлен код в некоторых местах и справка.
___________________________

tavria2
Может в шапку Варезника добавишь?
Автор: Romeo063
Дата сообщения: 01.11.2009 22:08
lorents

Скажи плиз а как вставить свою страницу HTML которая лежит на компе в IE плагин?
Автор: tavria2
Дата сообщения: 01.11.2009 22:09
saavaage

Цитата:
Есть надежда, что ссылка опять оживет? Я так понял из форумной переписки, что там много интересного лежит...


Скорее всего, надежды на сайт больше нет.

Раньше сайт принадлежал уважаемому GOOSE, там действительно было очень много полезного но, к сожалению, у человека изменились интересы и он больше не поддерживает его, соответственно и не проплачивает хостинг.

GOOSE заблаговременно известил всех о прекращении поддержки сайта и проплаты хостинга, а также предлагал забрать сайт..., но по-видимому никого не нашлось, кто хотел бы тянуть этот груз.
Автор: lorents
Дата сообщения: 04.07.2009 15:00
Zloy_Gelud
Супер, ты все-таки его доделал

Цитата:
Может в шапку Варезника добавишь?

+1
Автор: Witcherfx
Дата сообщения: 04.07.2009 18:00
Может кто подскажет: возможно ли сделать скрипт при котором установка приложения с диска будет выполняться перетаскиванием "Объекта" на рабочий стол пользователя?
Автор: lorents
Дата сообщения: 01.11.2009 22:14
Romeo063
Хорошо что ты напомнил, а то я забыл

Код: IExplorer.Navigate("Plugin1", "http://www.amsplugins.com");
Автор: lorents
Дата сообщения: 05.07.2009 11:14
помогите реализовать следующее, чтобы проект запоминал перед выходом размер окна, его место положение и развернут ли проект на все окно или нет, с размером окна я разобрался, но вот с его местом положения и развернут ли проект на все окно или нет так и понял как сделать, может кто уже это делал?
Автор: saavaage
Дата сообщения: 01.11.2009 22:19
tavria2 на всякий случай продублирую из предыдущего топика:
Еще раз, возращаясь к нашему разговору про API, я нашел такую ссылку
http://www.codenet.ru/progr/delphi/stat/System-Information.php
или вот более конкретная инфо по OS:
http://gallery.technet.microsoft.com/ScriptCenter/en-us/72aaadb9-dd7c-4d32-903d-e6f469e61e09
Не подскажете как ей воспользоваться с умом..

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: PHP RapidGet Pro V


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