Что нового

[Новая функция] Запись в саму себя

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
При ответе "Да" второго MsgBox'а просто не может быть
Ты спросил что я ответил в первый раз - там вообще никаких msgbox'ов небыло, а во второй раз я ответил «Нет» естественно, и получил msgbox'ы. Я делал всё по логике.

Там идёт компиляция и первый запуск скрипта
Так ты так и не рассказал, как делается компиляция?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Компиляция идёт как обычно. Это обычный скрипт.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
Компиляция идёт как обычно. Это обычный скрипт.
Через установленный AutoIt? тогда в чём смысл "собственности"?
Кстати я заметил по скриншотам, у тебя папка Files почему то не удаляется...
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
Через установленный AutoIt? тогда в чём смысл "собственности"?
Мммм... А как по другому? Либо нужен интерпретатор, либо скрипт должен быть откомпилирован для выполнения. У меня второй вариант.


Кстати я заметил по скриншотам, у тебя папка Files почему то не удаляется...
"Издержки производства." Я забыл, что файл 7-zip'а тоже надо удалять. И второе, не удаляется сама папка (временная, или та в которую всё распаковывалось.
Ну, щас перепишу скрипт. Дам возможность хранения не одного, а больше файлов.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
А как по другому?
Ну тогда я не смогу принести этот скрипт на компьютер без AutoIt'а ;)

не удаляется сама папка
Да, временная, та что рядом со скриптом. Но у меня как раз она удаляется, а вот у тебя судя по скринам - нет :smile:

P.S
Кто нибудь пробовал мой вариант, мне просто интересно, работает ли оно ещё где то кроме как на моём компе :smile:.
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
Ну тогда я не смогу принести этот скрипт на компьютер без AutoIt'а
wink.gif
;) А обычный скрипт значит можно? Что человек делает, чтобы запустить скрипт на машине без AutoIt? Компилирует его или таскает интерпретатор вместе с ним.
У меня компиляция нужна только один раз.


Кто нибудь пробовал мой вариант, мне просто интересно, работает ли оно ещё где то кроме как на моём компе
smiley.gif
.
Ну... Если не считать того, что просит права админа - работает хорошо.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
А обычный скрипт значит можно? Что человек делает, чтобы запустить скрипт на машине без AutoIt? Компилирует его или таскает интерпретатор вместе с ним.
У меня компиляция нужна только один раз.
Ты меня не понял. Твой скрипт компилирован, далее я беру его на систему без AutoIt'а, и запускаю - теперь чтобы откомпилировать снова скрипт (дабы поместить в него новые данные), нужен AutoIt, а его нету, вот и провалится вся концепция.

Если не считать того, что просит права админа - работает хорошо
Интересно почему, что там есть такого требующее права админа...
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
Ты меня не понял. Твой скрипт компилирован, далее я беру его на систему без AutoIt'а, и запускаю - теперь чтобы откомпилировать снова скрипт (дабы поместить в него новые данные), нужен AutoIt, а его нету, вот и провалится вся концепция.
Я тебя понял. Попробую ещё раз: скрипт компилируется один единственный раз. Всё остальное он делает с помощью интерпретатора, включённого в скомпилированный скрипт.


Интересно почему, что там есть такого требующее права админа...
Судя по всему - ничего. Севен считает приложение устаревшим, по названию и описанию делает вывод, что установщик какой-либо программы. Потому и говорит про права админа.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
Всё остальное он делает с помощью интерпретатора, включённого в скомпилированный скрипт
Стоп, а когда же он тогда по новой собирается, каким образом в него должны попадать данные, скрипт то нужно чем то компилить в конце?
 

SyDr

Сидра
Сообщения
651
Репутация
158
Так в этом чуде же есть сам экзешник-интерпретатор.
Копируется часть экзешника на новое место - интерпретатор, котороый будет вести дальнейшие действия.
Извлекается скрипт пересборки.
Скрипт удаляет старый экзешник.
На его месте собирает окончательный вариант.
Перезапускает себя :smile: из под окончательного файла.
Удаляет ненужные файлы.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
в этом чуде же есть сам экзешник-интерпретатор
Интерпритатор - да. А компилятор? Или там просто происходит обращение к скрипту (скомпилированному) как к архиву, и сам скрипт не трогается, а только добавляются файлы/данные? Если так, то это для меня сюрприз, я не знал что так ожно :smile:
 

SyDr

Сидра
Сообщения
651
Репутация
158
Я сначала думал архив извлекать (не FileInstall) из скомпилированного файла. А потом понял, что 7-zip и так прекрасно справляется. Но проблема в том, что запущенный exe нельзя редактировать. Приходится извращаться.
http://lurkmore.ru/Rarjpeg Вот здесь описано почему это работает.

Ссылка исправлена.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Проверил комплекс на другой машине, тоже не показывает ничего. Файл Data.zip кстати пуст.

P.S.
А для чего у тебя пишется строка в бинарном виде?


Добавлено:
Сообщение автоматически объединено:

SyDr [?]
Но проблема в том, что запущенный exe нельзя редактировать. Приходится извращаться.
Ну это нормально, но чтобы такой комплекс работал (и был востребован) нужен простой подход, даже для меня сложновато понять концепцию в твоём примере :smile:

Эту концепцию можно применять очень широко, например портабильность скрипта, создание инсталляторов, и прочие применения.
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
Проверил комплекс на другой машине, тоже не показывает ничего. Файл Data.zip кстати пуст.
Ага. Значит с 7-zip'ом нопортачил. Только не могу поянть почему. Посмотри пож. Добавь в StandAlone.au3 после или перед 10 строчкой.
Код:
FileWriteLine("LogFile.txt", '7z.exe a Data.zip "' & $sPathToFiles & '"')



но чтобы такой комплекс работал (и был востребован) нужен простой подход
Я специально написал: версия 0.0.2 :smile:
Сейчас переписываю. Интерфейс общения с юзером будет больше похож на нормальные файлы.


даже для меня сложновато понять концепцию в твоём примере
smiley.gif
Концепция проста :smile: Реализация ужасна.
Просто идут файлы, склеенные друг с другом (типа copy /B Srcipt.exe+Archive.zip+7z.exe). В конце файла информация, позволяющая их друг от друга отличить.



Эту концепцию можно применять очень широко, например портабильность скрипта, создание инсталляторов, и прочие применения.
На самом деле преимущество такого подхода только одно: возможность хранения всей информации в одном файле. Если можно использовать более одного файла, то, ИМХО, будет и удобнее их использовать.

CreatoR сказал(а):
P.S.
А для чего у тебя пишется строка в бинарном виде?

Какая строка?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
Посмотри пож. Добавь в StandAlone.au3 после или перед 10 строчкой.
Результат после двух запусков:
7z.exe a Data.zip "Files\"
7z.exe a Data.zip "C:\DOCUME~1\CREATO~1.CRE\LOCALS~1\Temp\~jcnmfxt.autoit\Files\"

24-ая в «StandAlone.au3»:
Код:
FileWrite($hTempScript, "0x46696C654...
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
Результат после двух запусков:
Хм... Севен-зип не находится в рабочей директории (это правильно, он должен находиться в указанном каталоге). Вот и найдена ошибка.


24-ая в «StandAlone.au3»:
Это скрипт пересборки :smile: Можно было и построчно записывать...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
SyDr [?]
Это скрипт пересборки
smiley.gif
Можно было и построчно записывать...
Вот именно про это я и писал - нужно попроще такие алгоритмы строить, зачем усложнять если пример для новичка ;).
 

SyDr

Сидра
Сообщения
651
Репутация
158
CreatoR [?]
Вот именно про это я и писал - нужно попроще такие алгоритмы строить, зачем усложнять если пример для новичка
wink.gif
.
Так ж :smile: Это... Мы сначала пишем, а потом думаем. Я ведь здесь могу FileInstall() использовать ;D. Достаточно эффективно и новичку будет понятно.
 
Автор
V

VitAl2013

Гость
Ну вы блин даёте прикурить... :wacko: ща буду разбираться что к чему, откуда, как?... РарДжиПег... ядрён батон

При таких наворотах впору интерфейс визуальный делать, куда скрипт класть и файлы ресурсов, а потом чтоб он по правилу заменял внутри скрипта пути для работы с ресурсами. Строку можно былобы по добавочному коменту искать.


CreatoR [?]
Кто нибудь пробовал мой вариант, мне просто интересно, работает ли оно ещё где то кроме как на моём компе
Работает, устойчивость на быстрых или медленных машинах не проверял.
 
Автор
V

VitAl2013

Гость
Господа гуру и иже с ними. Посмотрите на картинку ответа и обратите внимание на путь который написан после exe:
http://autoit-script.ru/index.php?topic=724.msg5166#msg5166
Получается "Каспер" может смотреть внутрь exe и, я так понял, при "лечении" исправлять его внутренности, а почему сам скрипт.exe такого не может? Какие ситстемные библиотеки использует антивир для этого? Может можно как-то спаять с ними наши программы?
 
Верх