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

» Indigo Rose AutoPlay Media Studio

Автор: PAVELNEXT
Дата сообщения: 06.10.2014 14:16
Доброе время суток уважаемые знатоки, после долгих изысканий решил спросить у Вас, я собираю проект в exe файл и ни как не могу найти код, как узнать откуда его запустили до распаковки (с диска С D или флешки например ), т.к после он естественно находится в папке TEMP и путь отображается именно туда.
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 14:23
PAVELNEXT -- поиск в теме по слову _CommandLineArgs
Автор: PAVELNEXT
Дата сообщения: 06.10.2014 14:31
Zloy_Gelud
Огромное спасибо, помогло

Добавлено:
Zloy_Gelud
Всё так остался вопрос, код показывает путь, а как добавить название файла, вдруг сменят и статичное уже не подойдет.
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 14:48
PAVELNEXT

_SourceFilename
Автор: PAVELNEXT
Дата сообщения: 06.10.2014 14:55
Zloy_Gelud
Ё-маё, как же я забыл то, выручил как всегда, огромное спасибо

Добавлено:
Zloy_Gelud
Подскажи плиз, в переменной кода приходит такое C:\Users\Desktop --- как одну слеш заменить на две ?
Автор: dodakaedr
Дата сообщения: 06.10.2014 20:24

Цитата:
Необходим плагин LuaCom.

Нашел плагин, но не пойму как его подключить, помогите , пожалуйста.
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 20:43
PAVELNEXT

Код: result = String.Replace("012X345X678X9", "\\", "\\\\", false);
Автор: dodakaedr
Дата сообщения: 06.10.2014 20:53

Цитата:
Project > Plugins... > LuaCom

Он там отсутствует. Закинул в папку C:\Program Files\AutoPlay Media Studio 8\Plugins\Actions. Может не правильно закинул?
Автор: PAVELNEXT
Дата сообщения: 06.10.2014 20:53
Zloy_Gelud

Что то ничего не понимаю

в переменной C:\Users\Desktop\

File.Run("AutoPlay\\setup.exe", "/p="..sPathSFX, "", SW_SHOWNORMAL, true);


он пишет в командной строке C:\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C

Не знаешь в чем проблема ?
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 21:07
dodakaedr

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

Правильно. Сабж перезапустил?

PAVELNEXT

Цитата:
Не знаешь в чем проблема ?

Я не понял сути проблемы.
Автор: PAVELNEXT
Дата сообщения: 06.10.2014 21:12

Цитата:
Я не понял сути проблемы.


в переменной C:\Users\Desktop\ получаю я её кодом

далее запускаю инсталлятор с аргументами

File.Run("AutoPlay\\setup.exe", "/p=C:\Users\Desktop\", "", SW_SHOWNORMAL, true); --- /р указывает инсталятору куда установиться

но адрес C:\Users\Desktop\ - приводит к тому что я писал выше даже с двумя слешами, создаёт не верный адрес установки если быть точным
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 21:18
PAVELNEXT

Цитата:
в переменной C:\Users\Desktop\ получаю я её кодом

Значит слеши удваивать не надо.

Цитата:
но адрес C:\Users\Desktop\ - приводит к тому что я писал выше даже с двумя слешами

А так?

Код: File.Run("AutoPlay\\setup.exe", '/p="'..sPath..'"', "", SW_SHOWNORMAL, true);
Автор: PAVELNEXT
Дата сообщения: 06.10.2014 21:23
Zloy_Gelud
в строке инсталлятор стало с кавычками "C:\Users\Desktop\"

если убрать двойные кавычки --- File.Run("AutoPlay\\setup.exe", '/p='..sPathSFX..'', "", SW_SHOWNORMAL, true); --- получится так C:\Пользователи\Пользователи\Пользователи
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 21:25
PAVELNEXT
Я не пойму, где ты это смотришь:

Цитата:
в строке инсталлятор стало с кавычками "C:\Users\Desktop\"


Цитата:
пишет в командной строке C:\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C\Windows 7 (C

И вообще, что ты устанавливаешь?
Автор: PAVELNEXT
Дата сообщения: 06.10.2014 21:27

Цитата:
Я не пойму, где ты это смотришь:


Инсталлятор создан на Smart Install Maker , я передаю ему аргумент куда устанавливать
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 21:31
PAVELNEXT -- можешь кинуть инсталлятор, посмотрю, если небольшой по размерам.
А так, не знаю, что за беда у тебя с путями. Если инсталлятор скриптовый, может код кривой...
Автор: dodakaedr
Дата сообщения: 06.10.2014 21:47

Цитата:
Сабж перезапустил?

Программу перезапускал. Может плагин какой-то кривой? Посмотрите Ссылка
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 21:52
dodakaedr

Цитата:
Может плагин какой-то кривой?

Ясень пень не будет работать. 2005 года выпуска для AMS 5. Уже как никак 8-ая версия сабжа.
Вот рабочий плагин: http://rghost.net/private/58386646/9b9a9f5ad7be6023a035cf3c72a486d8

Добавлено:
PAVELNEXT -- программа для создания инсталляторов (Smart Install Maker) - шлак. Сама портит пути. AMS здесь не при чем. Пиши багрепорт в поддержку или перепаковывай в другой программе.
Автор: dodakaedr
Дата сообщения: 06.10.2014 22:02

Цитата:
Вот рабочий плагин

Спасибо! Теперь подключил плагин добавил строчку Shell.PinTo(_SystemFolder.."\\calc.exe", SHELL_STARTMENU_PIN); и не работает, ошибка "'PinTo' (a nil value)". Чего не хватает?

Добавил
Цитата:
Shell.PinTo = function (sPath, cType)
if File.DoesExist(sPath) then
local tPaths = String.SplitPath(sPath);
local oShell = luacom.CreateObject("Shell.Application");
local oFolder = oShell:Namespace(tPaths.Drive..tPaths.Folder);
local oFolderItem = oFolder:ParseName(tPaths.Filename..tPaths.Extension);
oFolderItem:invokeverb(cType);
oShell = nil;
end
end
в место закрепления происходит запуск программы.
Автор: Zloy_Gelud
Дата сообщения: 06.10.2014 22:05
dodakaedr

Цитата:
Чего не хватает?

Внимательности! Код, который я написал, нужно скопировать полностью, а не выдрать только последнюю срочку.
PS. Советую прежде вам подучиться работе с программой.

Добавлено:

Цитата:

Добавил

Повторяю, если еще не поняли. Добавлять нужно все, что я написал, а не какой-то кусок!
Автор: dodakaedr
Дата сообщения: 06.10.2014 22:11

Цитата:
Добавлять нужно все, что я написал, а не какой-то кусок!

Спасибо! Уже понял. Просто клас
Автор: erickck
Дата сообщения: 08.10.2014 17:34
Привет всем!
У меня такая проблема. Пользуюсь библиотекой bass, не могу изменить громкость. Для этого использую команду -

Код: DLL.CallFunction(cPathDLL, "BASS_SetVolume", 0.5, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
Автор: Zloy_Gelud
Дата сообщения: 08.10.2014 17:40
erickck

Цитата:
Поддержывает ли ams тип float?

Увы, нет. Сам от этого страдаю. Можно попробовать реализовать через плагин MemoryEx, но далеко не факт, что получится.
100% можно реализовать через модуль alien, который поддерживает FLOAT-тип.

PS. Проверил с MemoryEx - не получится. Остается только alien-модуль.
Автор: erickck
Дата сообщения: 08.10.2014 18:55
Zloy_Gelud
Никогда не юзал MemoryEx..
Попробовал:


Код: float = MemoryEx.Float(0.5);
DLL.CallFunction(cPathDLL, "BASS_SetVolume", float, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
Автор: Zloy_Gelud
Дата сообщения: 08.10.2014 19:01
erickck

Цитата:
Попробовал:

Во-первых, ты неправильно используешь. Во-вторых, я выше ответил по поводу MemoryEx.

UPD. Написал небольшой рабочий пример с использованием модуля alien:

Код: -- Подключаем модуль alien
require 'alien';
-- Загружаем библиотеку bass.dll
local bass = alien.load 'bass.dll';

-- Объявляем типы аргументов некоторых функций
bass.BASS_ErrorGetCode:types{abi="stdcall"};
bass.BASS_Init:types{"int", "uint", "uint", "int", "int", abi="stdcall"};
bass.BASS_Free:types{abi="stdcall"};
bass.BASS_StreamCreateFile:types{"int", "string", "uint", "uint", "uint", abi="stdcall"};
bass.BASS_ChannelPlay:types{"uint", "int", abi="stdcall"};
bass.BASS_SetVolume:types{"float", abi="stdcall"};

-- Некоторые используемые функции
BASS = {
Init = function (nFlags, nDevice, nFreq, hWnd, hCLSID)
local nRet = bass.BASS_Init(nDevice, nFreq, nFlags, hWnd, hCLSID);
if (nRet == 0) then return false, BASS.ErrorGetCode(); end
return true, nRet;
end,

ErrorGetCode = function ()
return bass.BASS_ErrorGetCode();
end,

Free = function ()
local nRet = bass.BASS_Free();
if (nRet == 0) then return false, BASS.ErrorGetCode(); end
return true, nRet;
end,

StreamCreateFile = function (nMem, sFilePath, nOffset, nLength, nFlags)
local nRet = bass.BASS_StreamCreateFile(nMem, sFilePath, nOffset, nLength, nFlags);
if (nRet == 0) then return false, BASS.ErrorGetCode(); end
return true, nRet;
end,

ChannelPlay = function (hChannel, nRestart)
local nRet = bass.BASS_ChannelPlay(hChannel, nRestart);
if (nRet == 0) then return false, BASS.ErrorGetCode(); end
return true, nRet;
end,

SetVolume = function (nVolume)
local nRet = bass.BASS_SetVolume(nVolume);
if (nRet == 0) then return false, BASS.ErrorGetCode(); end
return true;
end
};

-- Пример
if BASS.Init(0, -1, 44100, Application.GetWndHandle(), 0) then
local bOk, hStream = BASS.StreamCreateFile(0, "C:\\Users\\Slota\\Desktop\\TESTING_FILES\\6chan.wma", 0, 0, 0);
if bOk then
if BASS.ChannelPlay(hStream, 1) then
BASS.SetVolume(0.2)
Application.Sleep(5000);

BASS.SetVolume(1)
Application.Sleep(5000);
end
end
BASS.Free();
end
Автор: erickck
Дата сообщения: 08.10.2014 21:31
Zloy_Gelud

Все работает Большое СПАСИБО!
Автор: Ashap_1974
Дата сообщения: 10.10.2014 01:16
Доброго времени суток , Уважаемые Гуру!
Подскажите пожалуйста , как правильно написать в скрипте для инсталлятора системные переменные для следующих путей:
C:\Documents and Settings\Admin\Local Settings\Application Data
C:\Program Files\Common Files
ps: весь букварь перечитал - нифига непонял. Заранее благодарю!
Автор: Zloy_Gelud
Дата сообщения: 10.10.2014 06:49
Ashap_1974

Код: -- C:\Documents and Settings\Admin\Local Settings\Application Data
result = Shell.GetFolder(SHF_APPLICATIONDATA_LOCAL);
-- C:\Program Files\Common Files
result = Shell.GetFolder(SHF_COMMONFILES);
Автор: Ashap_1974
Дата сообщения: 10.10.2014 12:46
Zloy_Gelud , Огромное Спасибо! Как всегда выручили!
Автор: dodakaedr
Дата сообщения: 11.10.2014 22:32
как провести установку в выбранную папку через input?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980

Предыдущая тема: память не может быть written


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