Página 1 de 1

External Callback

Publicado: 11 Nov 2021 08:55
por pexabosh
Hola! Tengo un proyecto y les pido ayuda porque necesito que descargue multiples archivos a la vez.
HTTP.DownloadSecure("https://example.com/file.zip", _SourceFolder.."\\file.zip", MODE_BINARY, 60, 443)
HTTP.DownloadSecure("https://example.com/file2.zip", _SourceFolder.."\\file2.zip", MODE_BINARY, 60, 443)
HTTP.DownloadSecure("https://example.com/file3.zip", _SourceFolder.."\\file3.zip", MODE_BINARY, 60, 443)
HTTP.DownloadSecure("https://example.com/file4.zip", _SourceFolder.."\\file4.zip", MODE_BINARY, 60, 443)
Como pueden ver este código no funciona, por que los descarga de uno en uno, mi solución fue hacer otra aplicación que gestionara todas las descargas, de la siguiente manera:
File.Run("downloader.exe", "https://example.com/file.zip", "", SW_SHOWNORMAL, false)
File.Run("downloader.exe", "https://example.com/file2.zip", "", SW_SHOWNORMAL, false)
File.Run("downloader.exe", "https://example.com/file3.zip", "", SW_SHOWNORMAL, false)
File.Run("downloader.exe", "https://example.com/file4.zip", "", SW_SHOWNORMAL, false)
'downloader.exe' es una aplicación AMS, y obtiene el enlace mediante _CommandLineArgs.
Hasta ahí todo va perfecto, solo que necesito saber el porcentaje de las descargas.

Mi idea fue que cada vez que downloader.exe fuera ejecutado, este creara un archivo de texto, el cual estaría actualizando constantemente indicando el porcentaje, pero lo considero muy ineficaz, ya que requiero actualizar el porcentaje muchas veces:
File.Run("downloader.exe", "https://example.com/file.zip", "", SW_SHOWNORMAL, false)
while true do
   local percent = TextFile.ReadToString("download1.txt")
   Label.SetText("percent1", percent)
   if percent == "success" then
      break
   end
end
En verdad desconozco si sea posible, pero me vino a la mente que 'downloader.exe' modifique las variables de 'autorun.exe', de tal manera que el código se vea así:
File.Run("downloader.exe", "https://example.com/file.zip", "", SW_SHOWNORMAL, false)
local percent = 0
while true do
   Label.SetText("percent1", percent)
   if percent == -1 then
      --success
      break
   end
end
Me imagino que podría ser posible escribiendo directamente en la memoria, con el WindowHandle o puenteando la conexión con el lua5.1.dll, la verdad no conozco muy bien ese tema, si pueden ayudar se los agradecería mucho! :SOS: :SOS: :SOS:

Re: External Callback

Publicado: 12 Nov 2021 04:22
por NicolasG
Con el plugin download puedes hacer múltiples descargas simultáneamente.

Re: External Callback

Publicado: 12 Nov 2021 12:57
por pexabosh
Bueno en realidad la duda principal era como modificar variables de una aplicación AMS a otra

Re: External Callback

Publicado: 12 Nov 2021 13:29
por abood1987
NicolasG escribió:
12 Nov 2021 04:22
Con el plugin download puedes hacer múltiples descargas simultáneamente.
yes this a good way .
and you can used Lua - Loops with a callBack Function to do that .

Re: External Callback

Publicado: 12 Nov 2021 14:42
por NicolasG
pexabosh escribió:
12 Nov 2021 12:57
Bueno en realidad la duda principal era como modificar variables de una aplicación AMS a otra
Podes usar Lua Socket y conectar las aplicaciones entre sí, o usar la librería de Raknet de Pabloko :zoidberg-1417754444:

Re: External Callback

Publicado: 19 Mar 2022 07:36
por euge2014
Checking

Re: External Callback

Publicado: 01 May 2022 19:58
por UserAMS
pexabosh escribió:
11 Nov 2021 08:55
Hola! Tengo un proyecto y les pido ayuda porque necesito que descargue multiples archivos a la vez.
HTTP.DownloadSecure("https://example.com/file.zip", _SourceFolder.."\\file.zip", MODE_BINARY, 60, 443)
HTTP.DownloadSecure("https://example.com/file2.zip", _SourceFolder.."\\file2.zip", MODE_BINARY, 60, 443)
HTTP.DownloadSecure("https://example.com/file3.zip", _SourceFolder.."\\file3.zip", MODE_BINARY, 60, 443)
HTTP.DownloadSecure("https://example.com/file4.zip", _SourceFolder.."\\file4.zip", MODE_BINARY, 60, 443)
Como pueden ver este código no funciona, por que los descarga de uno en uno, mi solución fue hacer otra aplicación que gestionara todas las descargas, de la siguiente manera:
File.Run("downloader.exe", "https://example.com/file.zip", "", SW_SHOWNORMAL, false)
File.Run("downloader.exe", "https://example.com/file2.zip", "", SW_SHOWNORMAL, false)
File.Run("downloader.exe", "https://example.com/file3.zip", "", SW_SHOWNORMAL, false)
File.Run("downloader.exe", "https://example.com/file4.zip", "", SW_SHOWNORMAL, false)
'downloader.exe' es una aplicación AMS, y obtiene el enlace mediante _CommandLineArgs.
Hasta ahí todo va perfecto, solo que necesito saber el porcentaje de las descargas.

Mi idea fue que cada vez que downloader.exe fuera ejecutado, este creara un archivo de texto, el cual estaría actualizando constantemente indicando el porcentaje, pero lo considero muy ineficaz, ya que requiero actualizar el porcentaje muchas veces:
File.Run("downloader.exe", "https://example.com/file.zip", "", SW_SHOWNORMAL, false)
while true do
   local percent = TextFile.ReadToString("download1.txt")
   Label.SetText("percent1", percent)
   if percent == "success" then
      break
   end
end
En verdad desconozco si sea posible, pero me vino a la mente que 'downloader.exe' modifique las variables de 'autorun.exe', de tal manera que el código se vea así:
File.Run("downloader.exe", "https://example.com/file.zip", "", SW_SHOWNORMAL, false)
local percent = 0
while true do
   Label.SetText("percent1", percent)
   if percent == -1 then
      --success
      break
   end
end
Me imagino que podría ser posible escribiendo directamente en la memoria, con el WindowHandle o puenteando la conexión con el lua5.1.dll, la verdad no conozco muy bien ese tema, si pueden ayudar se los agradecería mucho! :SOS: :SOS: :SOS:
interesante :rockon-1417756812: