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

» Autoplay Media Studio

Автор: AVM185
Дата сообщения: 18.06.2012 21:21
SuperDimon007 спасибо, но мне не понятно, у меня код на странице с результатами выглядит так:


local tbScore = ScoreQuiz(tbRnd);
Paragraph.SetText("Paragraph1", "Вы ответили на все вопросы данного задания!\r\n\r\nВаш результат: Правильных ответов"..tbScore.Correct.." из "..nQtA.." Что составляет "..tbScore.Score.."%.");
Автор: SuperDimon007
Дата сообщения: 18.06.2012 22:37
if tbScore.Correct==1 then Page.Jump(2); end;
Разве не так?
Автор: KerberX
Дата сообщения: 19.06.2012 14:54
Нельзя в Page.Jump использовать число для указания страницы.
Автор: ubian
Дата сообщения: 20.06.2012 22:35
SuperDimon007
Тебе наверное нужно AutoIt
Автор: SuperDimon007
Дата сообщения: 21.06.2012 16:33
ubian
Нашёл решение своей проблемы в C++
Автор: Nikielena
Дата сообщения: 22.06.2012 15:42
Добрый день! Я использую в проекте плагин MediaPlayer (поначалу я его делаю невидимым). Имеется кнопка,при нажатии на которую в плагине Автоматически запускается файл .avi,но не сначала,а допустим с 8 сек.,для этого в скрипте плагина на On Play ставлю MediaPlayer.Seek("Plugin1", SEEK_FORWARD, 8). (Кстати,если это действие поставить на кнопку,файл почему-то запускается сначала,а не с 8 сек.) Проблема в том,что если во время тестирования проекта нажать на Паузу,а потом опять на Воспроизведение,то воспроизведения с остановленной позиции не происходит. Можно ли в программе применить какой-либо код,чтобы устранить эту проблему? Спасибо.
Автор: Zloy_Gelud
Дата сообщения: 22.06.2012 17:21
Nikielena
А стандартный объект Video не устроит?
Автор: Nikielena
Дата сообщения: 23.06.2012 07:16
В объекте Video такого недостатка я не увидела, не устраивает меня в нем его панелька управления. Вообще в идеале хотелось бы запускать видеофайл в настоящем плеере,в том же WMP,но в этом случае невозможно реализовать некоторые функции "On Finish".Использовала плагин MediaPlayer,чтобы панель управления была максимальна похожа на WMP. Кстати,Zloy_Gelud,в качестве консультации,а в каких случаях тогда вообще применяется плагин MediaPlayer, зачем его придумали?
Автор: Zloy_Gelud
Дата сообщения: 23.06.2012 08:23
Nikielena

Цитата:
не устраивает меня в нем его панелька управления

Ее стиль можно выбирать в настройках.

Цитата:
зачем его придумали?

Фиг знает. Наверное, отчасти, чтобы читать файлы, которые не читаются объектом Video.
Автор: SuperDimon007
Дата сообщения: 24.06.2012 10:23
А можно реализовать, что при запуске программы с каким-нибудь параметром(например /S) сразу открывалась вторая страница?
Автор: Robby
Дата сообщения: 24.06.2012 11:33
SuperDimon007
да можно, смотри _CommandLineArgs
Таблица содержит аргументы командной строки, которые передаются в приложение.
Автор: SuperDimon007
Дата сообщения: 24.06.2012 19:42
Robby
Я немного не понял. _CommandLineArgs - это переменная? И как её использовать на моём примере?
Автор: Robby
Дата сообщения: 24.06.2012 22:54
_CommandLineArgs - это глобальная переменная (таблица), которая получает все параметры командной строки. Если у тебя будет один ключ то можно использовать так

Код:
if _CommandLineArgs[1]=="/S" then -- сравниваем первый параметр комстроки с ключом
Page.Jump("Page2"); -- если совпадает переходим на вторую страницу
end
Автор: selfar
Дата сообщения: 25.06.2012 19:32
Ребята, не могу побороть простую вещь - воспроизведение файлов mp3.
Я выбираю обычный файл, а AMS их конвертит в dat, которые у меня потом не воспроизводятся.
Причем когда запускаешь Preview открываются нормально, а когда компилишь не работает.
Подскажите как сделать, чтобы просто открывались mp3 файлы. Спасибо.

Upd. Разобрался сам. Нужно было положить mp3 в папку с проектов.
Автор: rasim934
Дата сообщения: 27.06.2012 12:57
Всем привет! Как-то давно, я просил у вас помощи по созданию антологии Spider-Man'a. С вашей помощья у меня всё получилось. Но опять же после записи проекта на диски, я нашол кучу ошибок.

Вопрос: можно переделать запакованный файл setup.exe?
Автор: qwertEHOK
Дата сообщения: 28.06.2012 14:39
подскажите пожалуйста

1) нужно ввести дату - какой компонент позволяет это сделать максимально просто (без проверок и чтобы пользователь не ввел 101 число или зпт поставил) (Calendar не подходит - больно большой)

2) как в ComboBox программно присвоить текст из экселевского файла (колонка А, если пустая значит все прочитали)?

Автор: ubian
Дата сообщения: 29.06.2012 09:13
qwertEHOK
1) Объект Label. Скрипт для примера в On Preload

Код:
--"Label1" - название объекта с датой.
date = System.GetDate(DATE_FMT_EUROPE);
Label.SetText("Label1", date);
Автор: qwertEHOK
Дата сообщения: 29.06.2012 09:38
ubian
в смысле? пользователь должен ввести 2 даты (не обязательно сегодняшние)

если брать input то нужно обрабатывать на ошибки - есть ли такая дата, правильно ли написана
если брать Calendar - то слишком большой

Автор: Zloy_Gelud
Дата сообщения: 29.06.2012 10:57
qwertEHOK

Цитата:
1) нужно ввести дату - какой компонент позволяет это сделать максимально просто (без проверок и чтобы пользователь не ввел 101 число или зпт поставил) (Calendar не подходит - больно большой)

http://amsplugins.com/details.asp?id=55

Цитата:
2) как в ComboBox программно присвоить текст из экселевского файла (колонка А, если пустая значит все прочитали)?

Не вразумил.
Автор: qwertEHOK
Дата сообщения: 29.06.2012 11:42

Цитата:
Не вразумил.


есть в экселевском файле длиииииииииинный список
он постоянно пополняется

нужно из экселевского файла считать колонку А1 до первой пустой строки
Автор: SuperDimon007
Дата сообщения: 30.06.2012 11:12
qwertEHOK
создаешь Grid. Файл exl сохраняешь в CSV с разделителем и пишешь код:
Grid.LoadFromFile("Grid1", "AutoPlay\\Docs\\файл.csv", ";", true);
получить значение из A1 можно так:
Dialog.Message("Title", Grid.GetCellText("Grid1", 0, 0))
ВНИМАНИЕ!!! если в файле есть русский текст, то не забудь шрифт в таблице на кириллицу сменить(Я перематерился из за этого)
Автор: Zloy_Gelud
Дата сообщения: 30.06.2012 12:31
qwertEHOK

Цитата:
есть в экселевском файле длиииииииииинный список
он постоянно пополняется

нужно из экселевского файла считать колонку А1 до первой пустой строки

Экселевский файл должен быть уже открыт.

Код: local oExcel = luacom.GetObject("Excel.Application");
if oExcel then
oExcel.ActiveWorkbook.Sheets(1):Select();
for i = 1, 100000 do
sText = String.TrimRight(oExcel.ActiveSheet.Cells(i,1).FormulaR1C1, nil);
-- останавливаем цикл, если встретили пустую строку
if sText == "" then break; end
TextFile.WriteFromString("C:\\MyFile.txt", sText.."\r\n", true);
end
end
Автор: Stalkersof
Дата сообщения: 30.06.2012 22:33
rasim934 Отправил исходник проекта в личку.
Автор: SuperDimon007
Дата сообщения: 02.07.2012 21:09
Можно ли определить дескриптор по названию окна(title не всегда совпадает с названием окна)?

P.S.Решил вопрос. Нарыл в интернете WinApi plugin для Autoplay 8. Там и управление мышью имеется!
Автор: Zloy_Gelud
Дата сообщения: 10.07.2012 12:47
tavria2, надеюсь ты еще сюда заходишь. Вопрос к тебе..

Код: if not SysTray then SysTray = {}; end

SysTray.FindToolbarWindow = function()
local hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowA", "\"Shell_TrayWnd\",0", 0, 1));
if hWnd == 0 then return -1; end
hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowExA", hWnd..",0,\"TrayNotifyWnd\",0", 0, 1));
if hWnd == 0 then return -1; end
local hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowExA", hWnd..",0,\"SysPager\",0", 0, 1));
if hWnd == 0 then return -1; end
local hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowExA", hWnd..",0,\"ToolbarWindow32\",0", 0, 1));
if hWnd == 0 then return -1; end
return hWnd;
end

SysTray._HANDLE = SysTray.FindToolbarWindow();


SysTray.GetIconCount = function()
if not SysTray._HANDLE or SysTray._HANDLE == -1 then return -1; end
return tonumber(DLL.CallFunction("user32.dll", "SendMessageA", SysTray._HANDLE..", 1048, 0, 0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
end



SysTray.GetIconText = function(nIconIndex)
local sIconText = "";
if not SysTray._HANDLE or SysTray._HANDLE == -1 then return ""; end
local nBuffer = tonumber(DLL.CallFunction("user32.dll", "SendMessageA", SysTray._HANDLE..", 1099, "..nIconIndex..", 0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
if nBuffer < 1 then return ""; end
nBuffer = 2 * (nBuffer + 1);
local pBuffer = Memory.Allocate(nBuffer);
iRet = DLL.CallFunction("user32.dll", "SendMessageA", SysTray._HANDLE..", 1099, "..nIconIndex..", "..pBuffer, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
sIconText = Memory.GetString(pBuffer, -1, "Ascii");
Memory.Free(pBuffer);
return "'"..sIconText.."'";
end

n = SysTray.GetIconCount();
for i = 0, n - 1 do
Dialog.Message("Notice", SysTray.GetIconText(i), MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
Автор: KerberX
Дата сообщения: 10.07.2012 17:18
Как вы узнаёте какие параметры надо сообщить функции из DLL? Для поиска названий функций у меня есть DLL Export Viewer (DLL XP). А вот как узнать параметры для неё, не знаю.
Автор: Unique_nickname
Дата сообщения: 10.07.2012 17:35
Zloy_Gelud
что было, если не секрет?

KerberX
MSDN Library для Visual Studio, напр - хороший вариант. А вообще книг и справочников валом по API. См. ПМ.
Автор: KerberX
Дата сообщения: 10.07.2012 17:53
Unique_nickname, спасибо. Теперь хоть буду знать.
Автор: Zloy_Gelud
Дата сообщения: 10.07.2012 18:04
Unique_nickname
Необходимы некоторые заморочки с обращением к окнам созданным другими процессом.

Добавлено:
Вот рабочий код:
[more]if not SysTray then SysTray = {}; end

--[[ Функция возвращает дескиптор окна системного трея]]
SysTray.FindToolbarWindow = function()
    local hWnd = -1;
    local tSystemInfo = System.GetOSVersionInfo();
    hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowA", "\"Shell_TrayWnd\",0", 0, 1));
    if hWnd == 0 then return -1; end
    hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowExA", hWnd..",0,\"TrayNotifyWnd\",0", 0, 1));
    if hWnd == 0 then return -1; end
    hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowExA", hWnd..",0,\"SysPager\",0", 0, 1));
    if hWnd == 0 then return -1; end
    hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowExA", hWnd..",0,\"ToolbarWindow32\",0", 0, 1));
    if hWnd == 0 then return -1; end
    return hWnd;
end

SysTray._HANDLE = SysTray.FindToolbarWindow();

SysTray.GetIconCount = function()
    if not SysTray._HANDLE or SysTray._HANDLE == -1 then return -1; end
    return tonumber(DLL.CallFunction("user32.dll", "SendMessageA", SysTray._HANDLE..", 1048, 0, 0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
end


---[[
SysTray.GetIconText = function(nIconIndex)
    local sIconText = "";
    if not SysTray._HANDLE or SysTray._HANDLE == -1 then return ""; end
    

    local hID = Memory.Allocate(4);
    DLL.CallFunction("user32.dll", "GetWindowThreadProcessId", SysTray._HANDLE..","..hID, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
    local nIDSysTrayProcess = Memory.GetInt(hID);
    Memory.Free(hID);

    local hSysTrayProcess = tonumber(DLL.CallFunction("kernel32.dll", "OpenProcess", "24, 0, "..nIDSysTrayProcess, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
    if hSysTrayProcess == 0 then return ""; end    
    
    local nBuffer = tonumber(DLL.CallFunction("user32.dll", "SendMessageA", SysTray._HANDLE..", 1069, "..nIconIndex..", 0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
    if nBuffer == -1 then return ""; end
    nBuffer = 2 * (nBuffer + 1);
    
    local pBufferSrc = tonumber(DLL.CallFunction("kernel32.dll", "VirtualAllocEx", hSysTrayProcess..",0,"..nBuffer..",12288,4", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
    local pBufferDest = Memory.Allocate(nBuffer);
    DLL.CallFunction("user32.dll", "SendMessageA", SysTray._HANDLE..", 1069, "..nIconIndex..", "..pBufferSrc, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
    local pBuffer = tonumber(DLL.CallFunction("kernel32.dll", "ReadProcessMemory", hSysTrayProcess..","..pBufferSrc..","..pBufferDest..","..nBuffer..",0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL));
    sIconText = Memory.GetString(pBufferDest, -1, "Ascii");
    DLL.CallFunction("kernel32.dll", "VirtualFreeEx", hSysTrayProcess..","..pBufferSrc..",0,32768", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
    Memory.Free(pBuffer);
    DLL.CallFunction("kernel32.dll", "CloseHandle", hSysTrayProcess, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
    return sIconText;
end

n = SysTray.GetIconCount();
for i = 0, n - 1 do
    Dialog.Message("Notice", SysTray.GetIconText(i), MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end[/more]
Автор: bigbrain
Дата сообщения: 15.07.2012 22:08
Подскажите, пожалуйста, как в Grid получить номер строки, которую выделил пользователь.
Как получить координаты ячейки, которую выбрали, я разобрался, а тут засада прям.
Выделение строки происходит когда пользователь щелкает по ячейке в Fixed column или Fixed row.
Grid.GetFixedRowSelection и Grid.GetFixedColumnSelection - это boolean, а больше ничего не вижу.
Делаю функцию удаления строки, которую выбрал пользователь. Сделал пока удаление строки при выделении любой одной ячейки нужной строки, но это боян )))

Буду признателен за любую помощь.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140

Предыдущая тема: Media Player Classic - Home Cinema (MPC-HC)


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