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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Indigo Rose AutoPlay Media Studio (часть 1)

Модерирует : gyra, Maz

Widok (03-09-2007 23:10): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

maykop3000



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для ленивых и нетерпеливых обзор темы aka FAQ
 
Где почитать:
------------------------
Для начала читаем статьи: тут раз илитут раз и два и три
Скриптовый язык LUA (англ) На русском здесь,  еще тут и  тут
Видео-уроки (анг)  
 
 
Где поживиться:
----------------------------
Видео-уроки (Flash) от производителя (англ)
Тоже официальное видео (англ)
Бесплатные шаблоны (маски) для окон ваших приложений (англ)
"Подарки к Рождеству" на оффсайте (англ)
Плагин LuaCOM (англ)
Примеры для начинающих (англ)
Неплохие примеры, библиотеки (англ)
Еще примеры, один из самых активных юзеров на оффоруме (англ)
Плагины и библиотеки (не все free) (англ)
Еще плагины (англ)
Собрание уроков (иногда с русскими объяснениями)  
 
Где найти ответы на вопросы:
------------------------------------
Проблема с путями при создании приложения .EXE и ресурсами на CD от Reineke
Запуск файлов из Web объекта
Реализация Play-листов для Винампа от BOObastis
Виды путей, используемых в AMS от GOOSE
Таблица дисков системы от Lexua
Вывод HTML отчета с использованием SQLite плагина от IndigoRose
Используем таймер
Полноэкранный режим для приложения
Показ\скрытие объектов по действиям мыши
Последовательный запуск нескольких файлов
Запуск WinRARa для распаковки архивов от Reineke
Изменяем скроллинг ListBox-у от GOOSE
Изменяем курсор в приложении от GOOSE
Перенос строки во всплывающей подсказке от GOOSE
Изменяем иконку приложения от Lexua
Включение\отключение фоновой музыки кнопкой
Отправка данных из форм по e-mail от GOOSE
Запускаем экзешник по информации из реестра от Lexua
Утилита для защиты авторанов
Из окна в полноэкранный режим и обратно
Для тех, у кого русский проект с "кракозяблами"
Выделение и копирование в буфер текста\части текста от GOOSE
Работаем с запароленными архивами от GOOSE
Работаем с объектом дерева от GOOSE
Проигрвывание MP3 из ListBox-а подряд от UMode
Простой пример бегущей строки от GOOSE
И более красивый от tavria2
Ряд вопросов и ответов по созданию меню для DVD от tavria2
 
------------------------
Шапка исправлена. Актуально на 3.08.06 GOOSE
------------------------
 
Разработчиков autorun'ов и графических дизайнеров приглашаем посетить проект шаблонов для Autoplay Media Studio:
http://ams-templates.com

Всего записей: 544 | Зарегистр. 24-09-2002 | Отправлено: 23:32 05-12-2002 | Исправлено: Maz, 12:33 25-09-2017
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Цитата:
У меня проблема! Почему-то из-за вот этого кода...
Перестал работать вот этот код

А каким образом можно определить проблему, если ты не показываешь в каком месте делаешь вставку моего кода? В следующий раз приводи полный пример неработающего кода, а не набор отдельно работающих кусков. И еще хочу сказать, что использование Ctrl+C/Ctrl+V - дело хорошее, но прежде всего нужно разобраться с алгоритмом, чтобы знать что, куда вставлять. Если не понятны некоторые действия, то сначала попробуй разобраться сам, с помощью справки и примеров, ну а если никак, то спрашивай - поможем
 
Вот примерно твой код:
Код:
-- Ф-ция установки программы
function Install()
    if (File.DoesExist(cFileName)) then -- файл найден
        File.Run(cFileName, "", "", SW_SHOWNORMAL, false); -- запуск инсталлятора без ожидания завершения
        Application.Exit(0); -- выйти из проекта
else -- файл не найден
        Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);  
    end  
end
 
cFileName = "SETUP\\setup.exe"; -- полное имя файла установки
search_reg_data = Registry.GetValue(........); -- читаем значение из реестра
 
if search_reg_data == "" then -- если в реестре нет записи
    run_install = Dialog.Message("Установка", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);  
    if (run_install == IDYES) then  
        Install(); -- вызов ф-ции установки программы
    end  
else -- в реестре есть запись
    run_install = Dialog.Message("Установка", "Игра уже установлена, хотите продолжить?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);  
    if (run_install == IDYES) then  
        Install(); -- вызов ф-ции установки программы
    end  
end  

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 00:59 01-12-2006
NightW0lf



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

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

Учту
 
Спасибо! То, что ты посоветовал все работает.
А возможно ли как-нибудь сделать так чтобы если одна копии “autorun.exe” уже запущена, то другую копию моего “autorun.exe” нельзя будет запустить?

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 15:36 01-12-2006
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf, да скачай ты AutorunForGames v3.0 и не парьсяhttp://gooseweb.ru/pub/rus_examples/autorun_for_games.apz . А что, если в системе пользователя задействован еще один такой процесс? Тут лучше искать по оригинальному заголовку окна. Смотри пример, там есть эта фишка и многие другие.

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 18:06 01-12-2006
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Цитата:
А возможно ли как-нибудь сделать так чтобы если одна копии “autorun.exe” уже запущена, то другую копию моего “autorun.exe” нельзя будет запустить?  

Для этого нужно проверить список запущенных процессов, на присутствие в нем более одной копии нашего файла "autorun.exe". Код необходимо поместить в On Preload страницы.
Код:
cCheckRunApp = "autorun.exe"; -- имя файла для проверки...
nCount = 0; ---- кол-во копий "autorun.exe" в процессах
tProcesses = System.EnumerateProcesses(); -- список запущенных процессов
 
for n, cPath in tProcesses do
    tFile = String.SplitPath(cPath); -- разлаживаем путь на составляющие
    if (String.Lower(tFile.Filename..tFile.Extension) == cCheckRunApp) then -- если наш файл обнаружен в процессах
        nCount = nCount + 1; -- кол-во найденных копий "autorun.exe" в процессах
    end
end
 
if (nCount > 1) then -- в процессах обнаружено больше одной копии "autorun.exe"
    Window.SetMask(Application.GetWndHandle(), _SourceFolder.."\\AutoPlay\\Images\\mask.bmp", true, 0); -- установить маску
    Dialog.Message("Внимание", cCheckRunApp.." уже запущен!", MB_OK, MB_ICONEXCLAMATION);
    Application.Exit(0); -- выход
    Window.SetMask(Application.GetWndHandle(), "", true, 0); -- убрать маску
end

P.S. Маска нужна для предотвращения мелькания окна при выходе из проекта, когда обнаружена копия проекта в процессах.  Маска представляет из себя рисунок bmp с заливкой черным цветом и размерами проекта.
 
Добавлено:
Kindly

Цитата:
А что, если в системе пользователя задействован еще один такой процесс? Тут лучше искать по оригинальному заголовку окна.
Да, ты прав.  

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 18:07 01-12-2006 | Исправлено: tavria2, 18:42 01-12-2006
NightW0lf



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

Цитата:
Тут лучше искать по оригинальному заголовку окна.
Да только я не использую заголовка, и использую скрытый режим!
 
tavria2
Все работает, Спасибо за помощь!
Еще один вопрос – как сделать чтобы при запуске какого либо инсталлятора мой “autorun.exe” скрывался(но НЕ закрывался), и музыка сама отключалась или ставилась на паузу, а при завершении установки любого инсталлятора(т.е. при его закрытие) восстанавливался обратно мой “autorun.exe” и играла музыка?

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 22:57 01-12-2006 | Исправлено: NightW0lf, 23:03 01-12-2006
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Перед запуском инсталлятора сделай паузу с помощью Audio.Pause и установи флаг sound в "false", затем с помощью Window.Hide скрываешь окно. В запуске инсталлятора установи режим ожидания окончания работы. Затем все возвращаешь назад, т.е. отображаешь окно, запускаешь музыку и устанвливаешь флаг sound в "true". Все изменения производи в ф-ции Install().

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 00:10 02-12-2006
vic499

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто подскажет, как запустить два файла, но чтоб комп между ними перегружался?
Я прописал код:
 
 01 result = File.Run("WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);
 02 System.Reboot();
 03 result = File.Run("WMP\\wmp11.exe", "", "", SW_SHOWNORMAL, true);
 
Точнее, как сделать чтобы, после выполнения второй строки, третья запускалась только после перегрузки компа?

Всего записей: 11 | Зарегистр. 01-06-2006 | Отправлено: 00:44 02-12-2006
tavria2



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

Цитата:
после выполнения второй строки, третья запускалась только после перегрузки компа?

Код:
cReboot = Application.LoadValue("MySection", "MyKey"); -- проверка флага перезагрузки
if (cReboot ~= "YES") then -- не было перезагрузки
    result = File.Run("WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);  
    Application.SaveValue("MySection", "MyKey", "YES"); -- сохраняем флаг перезагрузки
    System.Reboot();  
else -- была перезагрузка
    result = File.Run("WMP\\wmp11.exe", "", "", SW_SHOWNORMAL, true);  
    Application.SaveValue("MySection", "MyKey", ""); -- сбрасываем флаг перезагрузки
end

или

Код:
result = File.Run("WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);  
cFullPath = полный путь.."\\wmp11.exe";  
Registry.SetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "MyValue", cFullPath, REG_SZ);
System.Reboot();

После перезагрузки автоматически запустится "wmp11.exe".

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 01:20 02-12-2006 | Исправлено: tavria2, 02:59 02-12-2006
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
У меня что-то толком не получается с этим кодом! (получилось слегка с музыкой!), а с "Window.Hide" не как!

Код:
-- Ф-ция установки DirectX
function Install_DirectX()
Audio.Pause(CHANNEL_BACKGROUND, "AutoPlay\\Audio\\Mus_autorun_44100_mono_vol50pc.ogg", true, false);  
sound=false;
 
    if (File.DoesExist(cFileName)) then -- файл найден
        File.Run(cFileName, "", "", SW_SHOWNORMAL, false); -- запуск инсталлятора без ожидания завершения
else -- файл не найден
        Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
    end
end
 
cFileName = "DIRECTX\\DXSETUP.exe"; -- полное имя файла установки
        run_message_install_DirectX = Dialog.Message("Установка", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
    if (run_message_install_DirectX == IDYES) then
        Install_DirectX(); -- вызов ф-ции установки программы
    end

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 17:56 02-12-2006
tavria2



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

Цитата:
У меня что-то толком не получается с этим кодом! (получилось слегка с музыкой!), а с "Window.Hide" не как!  

А я и не вижу, чтобы ты использовал Window.Hide, к тому же по поводу размещения кода, я явно указал, что код должен находиться перед запуском инсталлятора, а у тебя получается, что музыка будет выключена и в случае, если инсталлятор не будет найден. По поводу скрытия/показа окон, я вообще не понимаю какие могут быть проблемы? Не ленись, читай справку - у тебя все получится.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 18:21 02-12-2006
vic499

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

Код:
cReboot = Application.LoadValue("MySection", "MyKey"); -- проверка флага перезагрузки
if (cReboot ~= "YES") then -- не было перезагрузки
result = File.Run("WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);
Application.SaveValue("MySection", "MyKey", "YES"); -- сохраняем флаг перезагрузки
System.Reboot();
else -- была перезагрузка
result = File.Run("WMP\\wmp11.exe", "", "", SW_SHOWNORMAL, true);
Application.SaveValue("MySection", "MyKey", ""); -- сбрасываем флаг перезагрузки
end  

 
В этом варианте кода происходит только установка первого файла и больше ничего. Ни перегрузки компа, ни запуска второго файла.  
 

Код:
result = File.Run("WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);
cFullPath = полный путь.."\\wmp11.exe";
Registry.SetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "MyValue", cFullPath, REG_SZ);
System.Reboot();

 
Во втором варианте происходит установка первого файла, запись в реестр, перегрузка компа. Но после перегрузки запуска второго файла не происходит. Дело в том, что я не уверен правильно ли я указываю путь к файлу. Файл находится на болванке и путь к нему может меняться в зависимости от того в какой привод он вставлен "F" "G" или "H".

Всего записей: 11 | Зарегистр. 01-06-2006 | Отправлено: 18:54 02-12-2006
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
Все равно не получается!
Вот наработки:

Код:
-- Ф-ция установки DirectX
function Install_DirectX()
    if (File.DoesExist(cFileName)) then -- файл найден
        File.Run(cFileName, "", "", SW_SHOWNORMAL, false); -- запуск инсталлятора без ожидания завершения
else -- файл не найден
        Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
    end
end
 
cFileName = "DIRECTX\\DXSETUP.exe"; -- полное имя файла установки
        run_message_install_DirectX = Dialog.Message("Установка", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
    if (run_message_install_DirectX == IDYES) then      
        Install_DirectX(); -- вызов ф-ции установки программы
handle = Application.GetWndHandle();
Window.Hide(handle);
Audio.Pause(CHANNEL_BACKGROUND);
sound=false;
else
File.Run(cFileName, "", "", SW_SHOWNORMAL, false);
Window.Show(handle);
Audio.Play(CHANNEL_BACKGROUND);
sound=true;
end

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 19:24 02-12-2006
tavria2



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

Цитата:
В этом варианте кода происходит только установка первого файла и больше ничего. Ни перегрузки компа, ни запуска второго файла.  

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

Цитата:
Дело в том, что я не уверен правильно ли я указываю путь к файлу. Файл находится на болванке и путь к нему может меняться в зависимости от того в какой привод он вставлен "F" "G" или "H".  
 
Здесь скорее всего проблема в путях - необходимо использовать относительный путь, т.е. путь необходимо указать относительно исполняемого файла проекта (autorun.exe). В AMS есть зарезервированная глобальная переменная _SourceFolder, возвращающая путь к исполняемому файлу проекта (autorun.exe). Но есть нюанс, если сборка проекта выполнена в режиме "Web/Email executable", которая по сути будет представлять самараспаковывающийся архив (SFX), а необходимые для запуска файлы не включены в сборку, то при запуске SFX-архива он будет распакован во временную папку и соответственно _SourceFolder вернет путь ко временной папке, а не к папке откуда был запущен SFX-архив и мы не сможем построить относительный путь к нашим файлам. Для решения этой проблемы нужно использовать ф-цию которая будет возвращать путь к SFX-архиву.

Код:
-- Ф-ция определяющая путь к SFX-архиву
function GetSFXPath()  
    local cPath = ""; -- путь
    local cArg = _CommandLineArgs[1]; -- параметр коммандной строки
    if cArg then -- есть параметр
        cPath = String.Right(cArg, String.Length(cArg) - 10); -- выделяем путь из параметра
        if (String.Length(cPath) > 0) then -- есть путь
            tPath = String.SplitPath(cPath); -- разлаживаем путь на составляющие
            cPath = tPath.Drive..tPath.Folder; -- полный путь без имени файла
            if (String.Right(cPath, 1)=="\\") then -- есть завершающий слэш
                cPath = String.Mid(cPath, 1, String.Length(cPath)-1); -- удаляем завершающий слэш
            end
            _SourceFolder = cPath; -- переназначаем путь в зарезервированной переменной
        end  
    end
end    
 
GetSFXPath(); -- вызов ф-ции
File.Run(_SourceFolder.."\\WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);  
cFullPath = _SourceFolder.."\\WMP\\wmp11.exe";  
Registry.SetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "MyValue", cFullPath, REG_SZ);  
System.Reboot();  

Примечание: Если сборка проекта была выполнена в режиме "Web/Email executable" и файлы для запуска всеже включены в сборку, тогда необходимо убрать вызов ф-ции GetSFXPath(), а также саму ф-цию.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 21:43 02-12-2006 | Исправлено: tavria2, 21:54 02-12-2006
vic499

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
Задача до безобразия проста. На диске, в отдельной папке,разархивированный дистрибутив  WinMP-11. Для его установки необходимо запустить файл «wmfdist11», перегрузить комп, а затем установить файлы «wmp11» и «wmpappcompat» из этой папки. Я сделал две отдельные кнопки и прописал им коды:
 

Код:
result = File.Run("WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);  
    System.Reboot();  

и

Код:
result = File.Run("WMP\\wmp11.exe", "", "", SW_SHOWNORMAL, true);
result = File.Run("WMP\\wmpappcompat.exe", "", "", SW_SHOWNORMAL, true);

 
В таком варианте все работает. При нажатии на первую кнопку запускается «wmfdist11» и перегружается комп. При нажатии на вторую кнопку запускаются «wmp11» и «wmpappcompat». Так вот, как сделать чтобы это все выполнялось одним нажатием?

Всего записей: 11 | Зарегистр. 01-06-2006 | Отправлено: 22:46 02-12-2006
tavria2



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

Цитата:
Все равно не получается!

Я же писал, что все это нужно делать в ф-ции... и запуск инсталлятора нужен в режиме ожидания завершения... Будь внимателен!
Код:
-- выключаем музыку
-- скрываем окно
File.Run(cFileName, "", "", SW_SHOWNORMAL, true); --запуск инстал-ра c ожиданием...  
-- показываем окно
-- включаем музыку



vic499
В каком режиме делаешь сборку проекта?
  1. Burn data CD/DVD
  2. Hard drive folder
  3. Web/Email executable
  4. ISO image

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 22:48 02-12-2006 | Исправлено: tavria2, 23:22 02-12-2006
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
Работает, НО почему-то проверка ошибки борахлит!(т.е. если ошибка то выскакивает табличка, нажимаю "ок" и "autorun.exe" скрывается, музыка не играет и остается толь убивать процесс "autorun.exe" в диспетчере!)

Код:
-- Ф-ция установки DirectX  
function Install_DirectX()
 
  handle = Application.GetWndHandle();
    Audio.Pause(CHANNEL_BACKGROUND); -- ставим на паузу музыку
    sound=false;
      Window.Hide(handle); -- скрываем "autorun.exe"
   if (File.DoesExist(cFileName)) then -- файл найден
        File.Run(cFileName, "", "", SW_SHOWNORMAL, true); -- запуск инсталлятора без ожидания завершения
      Window.Show(handle); -- показываем "autorun.exe"
    Audio.Play(CHANNEL_BACKGROUND); -- воспроизводим музыку
    sound=true;
   
else -- файл не найден
        Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);  
    end  
end
 
cFileName = "DIRECTX\\DXSETUP.exe"; -- полное имя файла установки
        run_message_install_DirectX = Dialog.Message("Установка - DirectX", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
    if (run_message_install_DirectX == IDYES) then
        Install_DirectX(); -- вызов ф-ции установки программы
end

P.S.: я не стал выкладывать эксперименты с ошибкой, потому-то вообще не знаю, как это сделать!

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 23:43 02-12-2006 | Исправлено: NightW0lf, 23:44 02-12-2006
tavria2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Мда... Опять повторяю - ты не внимателен. Я же сказал и показал, что выключать музыку и скрывать окно нужно непосредственно перед запуском инсталлятора, а ты выключаешь еще до проверки инсталлятора, естественно если инсталлятор не найден то он и не запустится, зато окно мы уже потушили , а вот возврат окна и музыки ты делаешь только при условии, что инсталлятор найден.

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 00:00 03-12-2006
vic499

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
 
Сборку делаю в "Hard drive folder"

Всего записей: 11 | Зарегистр. 01-06-2006 | Отправлено: 00:10 03-12-2006
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tavria2
Ну на конец-то ВСЕ вроде бы работает! Спасибо за помощь!

Код:
-- Ф-ция установки DirectX  
function Install_DirectX()
 
   if (File.DoesExist(cFileName)) then -- файл найден  
   
Audio.Pause(CHANNEL_BACKGROUND); -- ставим на паузу музыку  
sound=false;
      Window.Hide(handle); -- скрываем "autorun.exe"  
        File.Run(cFileName, "", "", SW_SHOWNORMAL, true); -- запуск инсталлятора без ожидания завершения        
      Window.Show(handle); -- показываем "autorun.exe"  
Audio.Play(CHANNEL_BACKGROUND); -- воспроизводим музыку    
sound=true;
   
else -- файл не найден    
        Dialog.Message("Ошибка", "Инсталлятор не найден!", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);  
    end  
end  
 
handle = Application.GetWndHandle();  
cFileName = "DIRECTX\\DXSETUP.exe"; -- полное имя файла установки  
 
        run_message_install_DirectX = Dialog.Message("Установка - DirectX", "Вы уверены, что хотите продолжить установку?", MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);  
    if (run_message_install_DirectX == IDYES) then  
        Install_DirectX();-- вызов ф-ции установки программы    
end


Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 00:39 03-12-2006
tavria2



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


vic499

Код:
cFullPathApp = _SourceFolder.."\\".._SourceFilename; -- полный путь + имя файла проекта
local cArg = _CommandLineArgs[1]; -- параметр коммандной строки
if (cArg ~= "/c") then -- если проект запущен без параметра "/c"
    File.Run(_SourceFolder.."\\WMP\\wmfdist11.exe", "", "", SW_SHOWNORMAL, true);  
    Registry.SetValue(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", "MyValue", cFullPathApp.." /c", REG_SZ);  
    System.Reboot();  
else -- проект запущен с параметром "/c" (continue - продолжение)
    File.Run(_SourceFolder.."\\WMP\\wmp11.exe", "", "", SW_SHOWNORMAL, true);
    File.Run(_SourceFolder.."\\WMP\\wmpappcompat.exe", "", "", SW_SHOWNORMAL, true);  
end    

Всего записей: 1127 | Зарегистр. 19-01-2005 | Отправлено: 00:46 03-12-2006
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Indigo Rose AutoPlay Media Studio (часть 1)
Widok (03-09-2007 23:10): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru