Что нового

Запуск *.au3 находящегося на удалённом сервере

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Задачка вобщем то в следующем: Локально у пользователя имеется скомпилированный клиент, задача которого загрузить с сервера скрипт и запустить его. Задачка в общем и целом выглядит простой :
Код:
Run(@AutoItExe & ' /AutoIt3ExecuteScript Temp.au3')

или
Код:
ShellExecute('Temp.au3')

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

Думаю в сторону получения md5 кодированного содержимого, и декодирования внутри клиента, но мозг уже вскипает. Может кто то сможет подсказать механизм??
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Если вы будите его загружать, то он все равно появится на локальном диске. Просто загрузите его куда-нибудь в @TempDir\~:rofl:aprvt.tmp и запускайте. А запуск можно сделать примерно так (Test.au3 лежит у нас на сервере и содержит только одну строчку "MsgBox(0, '', 'OK')"):

Код:
#Include <Crypt.au3>

Global Const $sFile = 'http://autoit-script.ru/autoit_rv_ua/files/Other/Test.au3'
Global Const $sTemp = @TempDir & '\~xdaprvt.tmp'
Global Const $sMD5 = 'B0475525058A7748425B3C0C1283C3B6'

If (InetGet($sFile, $sTemp)) And (StringTrimLeft(_Crypt_HashFile($sTemp, $CALG_MD5), 2) = $sMD5) Then
    $sData = FileRead($sTemp)
    $hFile = FileOpen($sTemp, 2)
    FileWrite($hFile, 'FileDelete(@ScriptFullPath)' & @CRLF & $sData)
    FileClose($hFile)
    Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sTemp & '"')
Else
	FileDelete($sTemp)
EndIf
 

toter

Новичок
Сообщения
1
Репутация
0
Подскажите, пожалуйста, как передать в запускаемый (скачанный) скрипт строковый параметр?
 

ynbIpb

Скриптер
Сообщения
399
Репутация
109
Задачка вобщем то в следующем...
Декомпилируют клиент, найдут ссылку на ваш файл и скачают его отдельно.
Бессмысленные манипуляции.
 
Верх