ACTUALIZACION DE UN PROYECTO

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Hola me gustaria que alguien que entienda sobre autoplay media studio me ayudase o me dijese como puedo crear un actualizador en autoplay media studio :SOS: :pc:
Imagen
Hola gracias por la respuesta podrias resubir el link de este archivo https://www.amsspecialist.com/viewtopic.php?f=12&t=114
A lo mejor esto te sirve de algo, noce, no zoi 100tifiKhó...

--############################################################
--# Created By NicolasG(10/12/2015)-(19/12/2015) #
--# http://www.amsspecialist.com #
--############################################################

--[[
puedo obtener la version antes de actualizar y si la applicacion se cierra con el from 1 vuelve la version a antes de que se iniciara la actualizacion.(creo que ya esta, no tengo la mas puta idea)
]]--

UpdaterNG = {};

function DelimitedToTable(s, d)
if not(d or #d < 1)then
return nil
end
local tbl = {};
local sa = s;
local sD = '';
local nP = string.find(sa, d, 1, true)
while nP do
sD = string.sub(sa, 1, nP-1)
table.insert(tbl, #tbl+1, sD)
sa = string.sub(sa, nP+1, -1)
nP = string.find(sa, d, 1, true)
end
if(sa ~= '')then
Table.Insert(tbl, #tbl+1, sa)
end
return tbl;
end

function UpdaterNG.Configure(SF, ATR, FT, FD, P, L, PD, PDS, F_URL, SN, VN)
Settings_File = (SF);
Section_Name = (SN);
Value_Name = (VN);
Version = INIFile.GetValue(Settings_File, Section_Name, Value_Name);
Application_To_Run = (ATR);
Folder_Temporal = (FT);
Folder_Destination = (FD);
Password = (P);
Set_Label = (L);
ProgressBar_Download = (PD);
ProgressBar_Dscompression = (PDS);
URL = (F_URL);
end

Starter_Version = Version;
from = (0);

function DownloadCallback (BytesSoFar, TotalBytes, TransferRate, SecondLeft, SecondsLeftFormat)
if(TotalBytes ~= 0)then
dload_pct = ((BytesSoFar/TotalBytes) * 100);
dec_mBytesSofar = BytesSoFar/1000000
dec_TotalmBytes = TotalBytes/1000000
mBytesSoFar = Math.Round(dec_mBytesSofar, 2);
TotalmBytes = Math.Round(dec_TotalmBytes, 2);
strProgressText = 'Downloading: '..mBytesSoFar..'/'..TotalmBytes..' KB';
Progress.SetRange('Progress_Download', 0, 100);
local strkbs = string.format('%.1f', TransferRate);
strKbsRate = 'Speed: '..strkbs..' KB/Sec';
else
strProgressText = '';
dload_pct = 0;
strKbsRate = '';
end
Progress.SetCurrentPos(''..ProgressBar_Download..'', ((BytesSoFar/TotalBytes) * 100));
Label.SetText(''..Set_Label..'', strProgressText..' '..strKbsRate..' Time remaining: '..SecondsLeftFormat..'');
end

function ZipCallback (strpath, percent, status)
Progress.SetCurrentPos(''..ProgressBar_Dscompression..'', percent);
end

function QueryAllowProjectClose()
if(from == 1)then
return true;
elseif(from == 0)then
INIFile.SetValue(''..Settings_File..'', ''..Section_Name..'', ''..Value_Name..'', ''..Starter_Version..'');
return true;
end
end

function UpdaterNG.CloseUpdater()
from = (1);
Application.Exit(0);
end

function UpdaterNG.ToUpdate()
for K,V in pairs(DelimitedToTable(HTTP.Submit(''..URL..'', {}, SUBMITWEB_GET, 20, 80, nil, nil), '>'))do
if(V ~= '0')then
if(tonumber(K-2) > tonumber(''..Version..''))then
if(tonumber(K-2) ~= tonumber(''..Version..''))then
HTTP.DownloadSecure(''..String.TrimRight(V, K-1)..'', Folder_Temporal..'\\'..String.SplitPath(''..String.TrimRight(V, K-1)..'').Filename..'.zip', MODE_BINARY, 20, 443, nil, nil, DownloadCallback);
if(''..Password..'' == 'false')then
Zip.Extract(Folder_Temporal..'\\'..String.SplitPath(''..String.TrimRight(V, K-1)..'').Filename..'.zip', {'*.*'}, Folder_Temporal..'\\unzip\\', true, true, '', ZIP_OVERWRITE_ALWAYS, ZipCallback);
else
Zip.Extract(Folder_Temporal..'\\'..String.SplitPath(''..String.TrimRight(V, K-1)..'').Filename..'.zip', {'*.*'}, Folder_Temporal..'\\unzip\\', true, true, ''..Password..'', ZIP_OVERWRITE_ALWAYS, ZipCallback);
end
INIFile.SetValue(''..Settings_File..'', ''..Section_Name..'', ''..Value_Name..'', K-2);
Progress.SetCurrentPos(''..ProgressBar_Dscompression..'', 0);
elseif(K-2 == Version)then
Dialog.Message('Notice', 'No more recent version');
UpdaterNG.CloseUpdater()
end
end
end
end
Progress.SetRange(''..ProgressBar_Download..'', 0, 100);
Progress.SetRange(''..ProgressBar_Dscompression..'', 0, 100);
Label.SetText(''..Set_Label..'', 'Updating Complete');
if(''..Application_To_Run..'' ~= 'false')then
TextFile.WriteFromString(Folder_Temporal..'\\MoveUpdate.bat', [[
@ECHO OFF
timeout /t 5
move %temp%\Patches\unzip\*]]..' "'..Folder_Destination..'"\r\n'..[[
timeout /t 5
start]]..' "" "'..Application_To_Run..'"\r\n'..[[
DEL "%~f0"
]], false);
File.Run(Folder_Temporal..'\\MoveUpdate.bat', '', '', SW_HIDE, false);
UpdaterNG.CloseUpdater()
else
TextFile.WriteFromString(Folder_Temporal..'\\MoveUpdate.bat', [[
@ECHO OFF
timeout /t 5
move %temp%\Patches\unzip\*]]..' "'..Folder_Destination..'"\r\n'..[[
DEL "%~f0"
]], false);
File.Run(Folder_Temporal..'\\MoveUpdate.bat', '', '', SW_HIDE, false);
UpdaterNG.CloseUpdater()
end
end
--#Mode 0 return a string.
--#Mode 1 return a dialog of quiestion.
function UpdaterNG.CheckUpdates(mode)
local Status = (false);
for K,V in pairs(DelimitedToTable(HTTP.Submit(''..URL..'', {}, SUBMITWEB_GET, 20, 80, nil, nil), '>'))do
if(V ~= '0')then
if(tonumber(K-2) == tonumber(''..Version..''))then
Status = true;
else
Status = false;
end
end
end
if(Status == false)then
if(mode == 0)then
return 'Not updated application';
elseif(mode == 1)then
if(Dialog.Message('Updater', 'Updates are available, you want to upgrade?', MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1) == 6)then
UpdaterNG.ToUpdate()
end
end
else
if(mode == 0)then
return 'Updated application';
elseif(mode == 1)then
Dialog.TimedMessage('Updater', 'Updated application', 2000, MB_ICONINFORMATION);
end
end
end


El archivo con las urls de actualización tiene que ser asi:
numero de la versión(aun que no sirve para nada ekizde)>url.

1>http://www.ass.com/update.zip

los archivos tienen que estar subidos a dropbox o algún host de archivos que te den la url directa al archivo, "suerte campeón".
:iseewhatyoudidthere-1414026019: :iseewhatyoudidthere-1414026019: :evilburns-1417755772: :evilburns-1417755772: :drunk: :scumbag-1413684123:
Bueno me dio un ataque de culpa :wat-1414024905: .

Para configurar el actualizador necesitas 2 archivos uno en un host como "mi@", y un archivo local para guardar la versión...

El archivo en el host tiene que tener las versiones y las urls de descarga de las correspondientes actualizaciones.
Ejemplo:
1>https://amsspecialist.com/update1.zip
2>https://amsspecialist.com/update2.zip
3>https://amsspecialist.com/update3.zip

Tienen que ser las urls directas al archivo, y tiene que ser .zip si o si.(PD: El archivo tiene que ser txt, en mi@ si el archivo no es .txt le meten un código de análisis de visitas o una mierda así, noce no zoi 100tifiKhó).

Después el archivo local tiene que ser el típico ini de toda la vida...
Ejemplo:
[App]
Version=0

Por ultimo tenes que configurar el código por medio de esta función.

UpdaterNG.Configure(SF, ATR, FT, FD, P, L, PD, PDS, F_URL, SN, VN)

--#En La primera variable tenes que definir la ruta a el archivo local.
--#En la segundo variable tenes que definir la ruta al archivo que quieres ejecutar tras terminar las actualizaciones(no me acuerdo si funciona). Ejemplo: C:\Users\user\Documents\miapp\MiApp.exe, en caso de que no quieras ejecutar ninguna aplicación tenes que poner: "false"(CON COMILLAS).
--#En la tercera variable tenes que definir la ruta a una carpeta temporal, Ejemplo: _TempFolder.."\\miapp"(OJO que esta carpeta me parece que se borra cada ves que inicias la aplicación, no me acuerdo...).
--#En la cuarta variable tenes que tenes que definir la ruta a la carpeta donde se instalaran las actualizaciones, Ejemplo: C:\Users\user\Documents\miapp(Tiene que ser una ruta de este tipo, no podes poner _SourceFolder, por que el archivo encargado de instalar las actualizaciones no funcionara.(es un .bat)).
--#En la quinta variable tenes que definir la contraseña que tienen los zips, claro en el caso de que la tengan, en caso de que no tengan tenes que poner: "false"(CON COMILLAS).
--#En la sexta variable tenes que definir un label para comprar información. Ejemplo: "Label1".
--#En la séptima variable tenes que definir una progressbar para la descarga. Ejemplo: "Progress1".
--#En la octava variable tenes que definir una progressbar para la descompresión. Ejemplo: "Progress2".
--#En la novena variable tenes que definir la url del archivo txt con las versiones y todo eso. Ejemplo:https://amsspecialist.com/update_list.txt
--#En la décima variable tenes que definir el nombre de la sección donde esta la variable que tiene la versión del archivo local, Al cual le pusimos App(es un ejemplo, EKHIZDE).
--#Y por ultima en la ultima(valga la redundancia.) tenes que definir el nombre de la variable que contiene la versión, La cual le pusimos Versión(es un ejemplo, EKHIZDE).

Recuerda todo con comillas.
El código tiene que funcionar, si te digo la verdad no lo probé con una aplicación nueva, pero cuando lo escribí funcionaba...

PD: creo que tu aplicación necesita permisos de adm.
PD2: Hay un error en el codigo
move %temp%\Patches\unzip\*]]..' "'..Folder_Destination..'"\r\n'..[[

Y creo que es así:
 move %temp%\]]..'"'..Folder_Temporal..'"'..[[\unzip\*]]..' "'..Folder_Destination..'"\r\n'..[[
que mas da, no te gaste no sirve para una mierda
Gracias vamos a intentarlo
Perdón por no corregir el error, me frustro demasiado rápido, irónica el código lo arregle el mismo día, es complicado adaptar el código para que cualquier persona lo pueda configurar... Tenes que cambiar 1 liña.
move "]]..''..Folder_Temporal..''..[[\unzip\*"]]..' "'..Folder_Destination..'"\r\n'..[[

Es el único problema que encontré pero por las dudas te dejo el modulo completo, lo probé y funciona bien.
HIDE: ON
Hidebb Message Hidden Description
There are so many ways to make a updater from file checking, md5 checking basic version checking.
graças
graças
Gracias.
Genial, probare por que me interesa esto!!
gracias
gracias
Gracias