External Callback

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
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:
Con el plugin download puedes hacer múltiples descargas simultáneamente.
Bueno en realidad la duda principal era como modificar variables de una aplicación AMS a otra
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 .
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:
Checking
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: