Что нового

[Файловая система] Перезапись самим собой скомпилированного файла

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Дописывать/переписывать исходный скомпилированный файл невозможно:
Код:
$hFile = FileOpen(@ScriptFullPath, 2)
MsgBox(64, 'Результат', FileWrite($hFile, 'test'))


Есть решение?
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Перезапись самим собой скомпилированного файла

`p r o x y [?]
Дописывать/переписывать исходный скомпилированный файл невозможно:
Ну почему же? Дописать и переписать дописанное в бинарном режиме вполне возможно!
Или я вас неправильно понял?

P.S. Пора переходить в общение...! :smile:
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Перезапись самим собой скомпилированного файла

Garrett
Только средствами AutoIt у меня не выходит, можно пример, пожалуйста.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Когда программа запущена, естественно ее нельзя ни переписать, ни удалить, т.к. файл используется системой.
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Yashied [?]
Когда программа запущена, естественно ее нельзя ни переписать, ни удалить, т.к. файл используется системой.
Вот и я так рассуждал, но Garrett меня опроверг - вот и думаю, в чем я ошибся?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Yashied [?]
Когда программа запущена, естественно ее нельзя ни переписать, ни удалить, т.к. файл используется системой.
скажи это qsort, вот тут ;D
http://autoit-script.ru/index.php?topic=1275.msg30116#msg30116
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Kaster
qsort перезаписывал скрипт, т.е. AU3 файл.
А меня интересует вариант от Garrett-а с EXE файлом.
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Garrett [?]
Это да! Абсолютно согласен!
Так вот и я ж об этом! Уухх..Вы уже мое все ос-понимание под сомнение поставили )
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
`p r o x y

Garrett [?]
Ну почему же? Дописать и переписать дописанное в бинарном режиме вполне возможно! Или я вас неправильно понял?
Дописать и переписать дописанное в бинарном режиме вполне возможно!
Естественно EXE файл должен быть не запущен! :smile:
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Yashied как всегда расставил все точки над i двух непонимающих друг друга оппонентов! :laugh:
Вот как важно чётко изъяснять свои мысли и доводы!
 

VladUs

Скриптер
Сообщения
621
Репутация
180
Yashied
Когда программа запущена, естественно ее нельзя ни переписать, ни удалить, т.к. файл используется системой.
Хорошо.. А почему тогда, когда я запускаю программу с флэшки, после чего, удаляю флэшку из компьютера, программа продолжает работать как ни в чем ни бывала, при этом операционная система не протистует против этого.
А когда я запускаю программу с жесткого диска и пытаюсь удалить файл программы (exe.), то здесь операционная система возмущается. Почему возмущается я знаю (открытые дискрипторы)... но почему когда файл удаляется вместе с флэшкой она не возмущается понять не могу.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
VladUs
флеш в отличие от исполняемых файлов сам себя не воспроизводит. для этого существуют сторонние программы, к примеру Adobe Flash Player. эти программы содержимое сценария грузят себе в память и оттуда уже выполняют действия. после загрузки в память сам сценарий уже не нужен. поэтому ты можешь его удалить
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Garrett [?]
двух непонимающих друг друга оппонентов!
А что здесь не четкого:
Дописывать/переписывать исходный скомпилированный файл невозможно:
Код:
$hFile = FileOpen(@ScriptFullPath, 2)
MsgBox(64, 'Результат', FileWrite($hFile, 'test'))


Пример говорит сам за себя: скрипт открывает свой файл и перезаписывает содержимое.
А текст дает исчерпывающее уточнение: "Дописывать/переписывать исходный скомпилированный файл"

Об этом и была речь. Поэтому и засомневался, после получения ответа, что все таки возможно.
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Kaster
Флешка - USB Flash Drive ;)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
А почему, когда я вытаскиваю шнур питания из розетки при работающем компьютере, Windows не протестует против этого?

;)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
`p r o x y
:rofl: не сразу допер
тогда я не знаю.
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Yashied сказал(а):
А почему, когда я вытаскиваю шнур питания из розетки при работающем компьютере, Windows не протестует против этого?
Майкрософт виноват. ;D

А выдёргивание флэшек они предусмотрели.
 
Автор
P

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
dwerf [?]
А выдёргивание флэшек они предусмотрели.
Точно, осталось еще физически это реализовать :rofl:

Garrett
Все ок, я просто устал :ok:
 

VladUs

Скриптер
Сообщения
621
Репутация
180
А выдёргивание флэшек они предусмотрели.
Ага... и еще сетевые папки удаленных компьютеров с которых так же можно запускать программы, после чего можно выключать эти удаленные компьютеры и все равно программа будет работать.
Я вот думаю ... может при запуске программы со съемных носителей или по сети... Windows сначало кэширует эти файлы,
(в какую область не знаю, либо в оперативную память и уже оттуда их запускает либо на жесткий диск) и потом их запускает...
 
Верх