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

» Autoplay Media Studio

Автор: saavaage
Дата сообщения: 28.10.2009 22:09
tavria2, спасибо еще раз. По-поводу свободного места на разделе С разобрался.
Остались вопросы такого плана:
1. как получить данные о процессоре (нужна прежде всего инфа о его частоте),
2. как получить данные о RAM системы (команда System.GetMemoryInfo ( ) выдает целую таблицу с различными данными)
Автор: leonardosv
Дата сообщения: 04.02.2010 18:35
добрый вечер помогали вы мне не раз,за что огромное спасибо.
ситуация у меня теперь такая
необходимо появление кнопок завязаных на таймере
к примеру так
1:30 - появляется 1 кнопка
1:50 - кнопка изчезает

2:40 - появляется вторая кнопка
3:00 - вторая изчезает

и главное
я веду бегунок видео назад и кнопочки появляются при проигрывании видио в той же последовательности,-те завязаны на шкале проигрывателя??
Автор: tavria2
Дата сообщения: 28.10.2009 22:13
saavaage
Drive.GetFreeSpace возвращает значение, которое помещается в переменную, вот эту переменную и подставляй в Label.SetText. Еще раз внимательно посмотри справку по этим действиям, а также примеры к этим действиям - все станет понятным.

Добавлено:
Упс, не успел с ответом
Автор: seryoga393777
Дата сообщения: 04.02.2010 19:12
tavria2


Цитата:
seryoga393777
Для начала проверь получаемый путь, с помощью Dialog.Message:
Dialog.Message("", strRunGamePath);


Я проверил, при просмотре авторана появляется окно в котором D:\My Game\MyGAme.exe, т.е. верный путь где и установлена игра , но всё равно игра не включается..
Автор: saavaage
Дата сообщения: 28.10.2009 22:51
tavria2
кстати, где можно посмотреть в справке примеры? Я увидел только коротенькие инфо по командам и все...


Добавлено:
tavria2
с Ram и CPU тоже разобрался. Вопрос по выводe разрядности винды (32 или 64). Нигде не могу найти эту команду. Это возможно в принципе?

Все, вопрос закрыт. Справкой тоже пользоваться научился. tavria2, еще раз спасибо.
Автор: tavria2
Дата сообщения: 04.02.2010 19:41
seryoga393777
Странно, если ты сделал исправления, как указал lorents, то результат должен быть: "D:\\My Game" и соответственно:
strRunGamePath.."\\MyGAme.exe" -- путь к запускаемому файлу ("D:\\My Game\\MyGAme.exe")
strRunGamePath -- рабочая папка ("D:\\My Game")

Добавлено:
Если все таки strRunGamePath возвращает путь + имя файла, тогда нужно из этого пути выделить рабочую папку:

Код: tPath = String.SplitPath(strRunGamePath);
sWorkFolder = tPath.Drive..tPath.Folder;
result = File.Run(strRunGamePath, "", sWorkFolder, SW_SHOWNORMAL, true);
Автор: saavaage
Дата сообщения: 31.10.2009 00:26
Всем вечер добрый!
Опять нужна Ваша помощь. По ходу создания меню возник еще один вопрос:
необходимо, чтобы на титульный лист меню выводилась инфо следующего характера:
1. имя текущего юзера системы (не путать с именем хозяина машины)
2. аватар текущего юзера

Если не сложно, подскажите как это реализовать.
Форум просмотрел, мысли есть, но не знаю откуда и как брать конкретную информацию о текущем пользователе и его аватаре...

Так, пока нашел такое решение:

-- определение буквы системного раздела
system_drive = String.Left(_WindowsFolder, 2);

-- определение текущего пользователя и заполнение этой инфой Label8
Label.SetText("Label8","");
user_data = Registry.GetValue(HKEY_CURRENT_USER, "\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer", "Logon User Name", false);
Label.SetText("Label8", user_data);

-- составление пути до аватара
path_parts = {Drive= system_drive,Folder="\\Documents and Settings\\All Users\\Application Data\\Microsoft\\User Account Pictures\\",Filename= user_data,Extension=".bmp"};
result_path = String.MakePath(path_parts);

-- загрузка картинки аватара в Image2
Image.Load("Image2", result_path);

-- этап проверки обладает ли текущий юзер правами администратора и сигнализация об этом
Label.SetText("Label9","");
Label.SetText("Label10","");
user_info = System.GetUserInfo();
if (not user_info.IsAdmin) then
Label.SetText("Label9","Нет!");
else
Label.SetText("Label10", "Есть!");
end

Вопрос по user_data остается открытым. Актуален ли такой путь в реестре для любой машины?
Автор: tavria2
Дата сообщения: 04.02.2010 23:28
All
Пример эффекта воды на картинке WaterMark.apz.

В проекте используется waterctrl.dll v2.0, которая была написана китайским мастером для InnoSetup.

Примечание:
Поддерживаются картинки только .bmp
Картинка изначально должна быть перевернута на 180 градусов, наверное таким образом мастер хотел защитить свое творение
Размер картинки сильно влияет на скорость ее загрузки
Автор: tavria2
Дата сообщения: 31.10.2009 20:59
saavaage

Код: function GetUserName()
local sUserName = "";
mem = Memory.Allocate(256)
len = Memory.Allocate(16)
Memory.PutLong(len, 256)

ret = tonumber(DLL.CallFunction("advapi32.dll", "GetUserNameA", mem..", "..len, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL))
if ret ~= 0 then
sUserName = Memory.GetString(mem, Memory.GetLong(len), "Ascii");
end
Memory.Free(mem)
Memory.Free(len)
return sUserName
end

-----------------------------------------------------------------
sUserName = GetUserName(); -- имя текущего пользователя в системе
if sUserName ~= "" then -- если есть имя текущего пользователя в системе
-- путь к пиктограмме текущего пользователя
sImagePath = Shell.GetFolder(SHF_APPLICATIONDATA_COMMON).."\\Microsoft\\User Account Pictures\\"..sUserName..".bmp";
end
Автор: lerik2703
Дата сообщения: 05.02.2010 13:02
leonardosv

думаю тебе надо воспользоваться действием Video.GetCurrentPos и оператором if
Автор: lorents
Дата сообщения: 05.02.2010 14:16
tavria2

Цитата:
Пример эффекта воды на картинке WaterMark.apz.

Эффект классный, давно его использую, тока делал его через flash, но теперь буду использовать твой пример, смотрится на много лучше, спасибо!
Автор: saavaage
Дата сообщения: 31.10.2009 23:42
tavria2, спасибо, работает.
А не можете сказать, правильно ли я сделал первоначально и чем ваш вариант лучше? Дело в том, что проверил свой вариант уже на 3 разных машинах и все вроде правильно отображается, а опыта понять самостоятельно, какое решение и чем лучше пока нет. Прямо скажу, что из верхней части вашего скрипта, вообще, ничего не понял. Может есть где почитать по это плагину?

Еще один вопрос - если на машине памяти больше 2 Гб, штатный скрипт (см. ниже) позволит это увидеть или только до 2Гб?

Штатный скрипт:

Label.SetText("Label4","");
result = System.GetMemoryInfo().TotalRAM +1;
Label.SetText("Label4", result);
Автор: seryoga393777
Дата сообщения: 05.02.2010 17:57
Всем доброго времени суток! У меня возник такой вопрос. Можно ли найти в интернете 4-ю версию Autoplay Media Studio. Если кто-нибудь знает где скачать дайте пожалуйста ссылку. Заранее благодарен.
Автор: pavki
Дата сообщения: 01.11.2009 00:16
Привет всем, я тут первый день!
Ребята скиньте пожалуйста Русский HELP у кого есть!
На форуме находил help НО ТАМ БИТАЯ ССЫЛКА
Автор: tavria2
Дата сообщения: 06.02.2010 13:23
All

В предыдущем примере WaterMark.apz, была допущена ошибка - не работал эффект воды в диалоговом окне.

Новая версия WaterMark 1.1.apz.
Добавлено несколько вспомагательных функций.
Автор: Kindly
Дата сообщения: 07.02.2010 14:19
tavria2
Цитата:
Новая версия WaterMark 1.1.apz
Спасибо, можно еще firectrl.dll прикрутить А вообще там в шапке темы коллекции dll выкладывали, если есть интересные, то тоже можно прикрутить
Автор: saavaage
Дата сообщения: 01.11.2009 00:24
pavki, присоединяюсь к просьбе..
Автор: tavria2
Дата сообщения: 01.11.2009 00:39
saavaage

Цитата:
А не можете сказать, правильно ли я сделал первоначально? и чем ваш вариант лучше. Дело в том, что проверял уже на 3 разных машинах и все вроде правильно отображается,

Проверял на разных машинах под XP? Попробуй проверить в Висте.

Путь к пиктограммам пользователя XP:
C:\Documents and Settings\All Users\Application Data\Microsoft\User Account Pictures

Путь к пиктограммам пользователя Vista:
C:\Users\All Users\Microsoft\User Account Pictures

Разницу улавливаешь?

Я привел пример с использованием API-функций (даже штатное действие Shell.GetFolder - является оберткой API-функции), т.е. используются библиотеки Windows, за счет чего достигается совместимость между различными версиями системы, хотя в данном случае Win9x - не поддерживается.

Цитата:
если на машине памяти больше 2 Гб штатный скрипт позволит это увидеть

Не знаю - не проверял.


pavki

Цитата:
Ребята скиньте пожалуйста Русский HELP у кого есть!
На форуме находил help НО ТАМ БИТАЯ ССЫЛКА

Русской справки не существует и врядли будет. Были только попытки русифицировать несколько пунктов справки и на этом все...
Автор: tavria2
Дата сообщения: 07.02.2010 15:45
Kindly

Цитата:
А вообще там в шапке темы коллекции dll выкладывали, если есть интересные, то тоже можно прикрутить

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

Если есть интересующие DLL-ки - список в студию с коротким описанием.
Автор: tavria2
Дата сообщения: 07.02.2010 21:10
Kindly

Цитата:
можно еще firectrl.dll прикрутить

попробовал прикрутить - не очень стабильная dll, т.е первый раз запускается все ОК, а при последующем вызове происходит ошибка записи в память.
Возможно, автор dll допустил ошибку при работе с памятью.

P.S. Со своей стороны, освобождение ресурсов сделал и проконтролировал.
Автор: saavaage
Дата сообщения: 01.11.2009 00:50
tavria2, получается, что Ваш -более универсален. Тогда вопрос по штатным скриптам (см. ниже) - будут ли они работать и в висте/7? и если нет, то куда рыть для получения универсального результата?

Label.SetText("Label3","");
drive_free = Drive.GetFreeSpace(_WindowsFolder);
Label.SetText("Label3", drive_free);
-----------------------------------------------------------------------------------------
Label.SetText("Label5","");
result = System.GetOSName();
Label.SetText("Label5", result.." /");
-------------------------------------------------------------------------------------------
Label.SetText("Label4","");
result = System.GetMemoryInfo().TotalRAM +1;
Label.SetText("Label4", result);
----------------------------------------------------------------------------------------------
Label.SetText("Label2","");
cMHz = Registry.GetValue(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor\\0", "~MHz", true);
Label.SetText("Label2", cMHz.." /")
-------------------------------------------------------------------------------------------------
Label.SetText("Label6","");
tKernels = Registry.GetKeyNames(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor");
if (tKernels) then
-- количество ядер
KernelsNumber = Table.Count(tKernels);
end
Label.SetText("Label6", KernelsNumber);
-----------------------------------------------------------------------------------------------------
Label.SetText("Label1","");
-- Check if the OS is 64 bit
b64Bit = System.Is64BitOS();
if b64Bit then
Label.SetText("Label1", "64");
else
Label.SetText("Label1", "32");
end
-------------------------------------------------------------------------------------------------
Label.SetText("Label7","");
system_drive = String.Left(_WindowsFolder, 2);
Label.SetText("Label7", system_drive);
---------------------------------------------------------------------------------------------------
Label.SetText("Label8","");
function GetUserName()
local sUserName = "";
mem = Memory.Allocate(256)
len = Memory.Allocate(16)
Memory.PutLong(len, 256)
ret = tonumber(DLL.CallFunction("advapi32.dll", "GetUserNameA", mem..", "..len, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL))
if ret ~= 0 then
sUserName = Memory.GetString(mem, Memory.GetLong(len), "Ascii");
end
Memory.Free(mem)
Memory.Free(len)
return sUserName
end
-----------------------------------------------------------------
sUserName = GetUserName(); -- имя текущего пользователя в системе
if sUserName ~= "" then -- если есть имя текущего пользователя в системе
-- путь к пиктограмме текущего пользователя
sImagePath = Shell.GetFolder(SHF_APPLICATIONDATA_COMMON).."\\Microsoft\\User Account Pictures\\"..sUserName..".bmp";
end
Label.SetText("Label8", sUserName);
Image.Load("Image2", sImagePath);
---------------------------------------------------------------------------------------
Label.SetText("Label9","");
Label.SetText("Label10","");
user_info = System.GetUserInfo();
if (not user_info.IsAdmin) then
Label.SetText("Label9","Нет!");
else
Label.SetText("Label10", "Есть!");
end
Автор: goFRyS
Дата сообщения: 08.02.2010 06:46
Уважаемые знатоки, у меня простой вопрос, на который не могу сообразить решение. Как сделать чтобы при отсутствии музыки был видим рисунок, и наоборот, когда музыка играет его не должно быть видно? На кнопку повесить нельзя, нужна именно реакция на присутствие играющей музыки (CHANNEL_BACKGROUND). Спасибо.
Автор: tavria2
Дата сообщения: 08.02.2010 09:16
goFRyS
Нужно использовать таймер для отслеживания текущей позиции трека. Время таймера установить ~100 ms.
В событии таймера сравнивать текущую позицию трека с длиной трека, если позиция меньше длины, то скрыть рисунок, иначе отобразить.
Автор: tavria2
Дата сообщения: 01.11.2009 08:41
saavaage

Цитата:
Тогда вопрос по штатным скриптам (см. ниже) - будут ли они работать и в висте/7? и если нет, то куда рыть для получения универсального результата?

Наверное, не штатные скрипты, а штатные действия (функции). Теоретически все штатные действия должны возвращать правильный результат, если это не так то - это считается багом программы или версия программы сильно устарела.
Чтобы голова меньше болела о совместимости - старайся всегда избегать абсолютных путей.

В твоем коде - слабое место, это чтение из реестра инфы о процессоре. Нет никакой гарантии, что в следующих версиях Windows, ничего не поменяется.

Самый универсальный результат - это API, но даже при использовании его функций, нужно обязательно обращать внимание на какой платформе будет работать та или иная функция.
Автор: goFRyS
Дата сообщения: 08.02.2010 10:39
tavria2
Мысль понятна, но я плохо разбираюсь в скриптах , если можно, поподробнее второе предложение, допустим Track1 длиной 60 секунд, как это будет выглядеть?
Автор: saavaage
Дата сообщения: 01.11.2009 08:47
tavria2, вроде получил первый отзыв от владельца машины с 3 Гб RAM - видит только 2,5
http://ipicture.ru/Gallery/Viewfull/25949038.html
Вот такие пироги..
Автор: tavria2
Дата сообщения: 08.02.2010 10:53
goFRyS
См. Справку:
Page.StartTimer
Audio.GetLenght
Audio.GetCurrentPos
Автор: tavria2
Дата сообщения: 01.11.2009 09:11
saavaage

Цитата:
вроде получил первый отзыв от владельца машины с 3 Гб RAM - видит только 2,5
А у него случайно не интегрированная видеокарта? Сколько памяти отображается в свойствах системы?


Добавлено:
В догонку.
Вот, что пишут разработчики AMS:
Цитата:
New Version Available: 7.1.1005.0
...
Fix: Fixed a bug in the System.GetMemoryInfo action where it was not reporting correct values for greater than 4 GB of RAM.
...

Так, что либо у тебя старая версия AMS, либо у человека действительно доступен такой объем памяти.
Автор: berik81
Дата сообщения: 08.02.2010 12:31
Подскажите, как сделать, чтобы autoplay поддерживал казахский язык.
Автор: goFRyS
Дата сообщения: 08.02.2010 13:20
tavria2
Не получается. Как только не сравнивал, делает что-то одно - либо скрывает но не отображает либо отображает но не скрывает . Может как-то еще можно? Через On Audio например?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

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


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