Что нового

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

`p r o x y

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


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

Garrett

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

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

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

`p r o x y

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

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

Yashied

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

`p r o x y

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

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
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
Репутация
967
`p r o x y

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

Garrett

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

VladUs

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

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
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,724
А почему, когда я вытаскиваю шнур питания из розетки при работающем компьютере, Windows не протестует против этого?

;)
 

kaster

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

dwerf

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

Майкрософт виноват. ;D

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

`p r o x y

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

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

VladUs

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