Что нового

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

NoMad73rus

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

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

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

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,714
Если вы будите его загружать, то он все равно появится на локальном диске. Просто загрузите его куда-нибудь в @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
Задачка вобщем то в следующем...
Декомпилируют клиент, найдут ссылку на ваш файл и скачают его отдельно.
Бессмысленные манипуляции.
 
Верх