Как убить файл?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как убить файл? Expand / Collapse
Автор
Сообщение
10.11.2006 12:38
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.06.2008 8:38
Сообщ.: 91, Visits: 451
Возникла следущая задача. Макрос в открытом Excel файле должен удалить этот же файл из файловой системы. Естественно без извращений это не получается сделать, поскольку он используется сервисом. Но грохнуть его все равно надо. Не подскажте как?
Сообщ. #907212
10.11.2006 13:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 16.04.2008 11:44
Сообщ.: 366, Visits: 2 473
Убить сам себя? Хм...
Единственное что могу посоветовать, создать из макроса скрипт vbs, который по таймеру убьет твой файл, запустить его, закрыть себя. Тоже изврат, но по другому не знаю.

С уважением,
Сообщ. #907222
10.11.2006 14:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 14.12.2007 16:53
Сообщ.: 100, Visits: 1 707
'Макрос, позволяющий удалить (убить) файл, в котором сам и находится (самоубийство)
'Source: http://www.progz.ru/forum/index.php?s=5a0c711ab6e36c1995ad8f8cdc21caf1&showtopic=28144

Private Sub Kill_ActiveWorkbook()
    iFullName$ = ActiveWorkbook.FullName
    ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
    SetAttr iFullName$, vbNormal: Kill iFullName$
    ActiveWorkbook.Close saveChanges:=False
End Sub

Сообщ. #907231
15.11.2006 11:04
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.06.2008 8:38
Сообщ.: 91, Visits: 451
Годится! Код работает. А вот какая логика в нем - это другой вопрос. А в-общем то какая разница. Хотя если сможете объяснить принцип - буду очень рад.
Сообщ. #907499
15.11.2006 14:30


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 03.03.2008 16:40
Сообщ.: 443, Visits: 4 574
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
'Если в обычном режиме "чтение/запись", операционная система не даст убить открытый файл. Данной командой мы его закрываем и открываем только для чтения, с ним можно что хочешь делать
SetAttr iFullName$, vbNormal
'Это на тот случай, если файл изначально имел атрибут "Только для чтения" - vbReadOnly. Обычно такого не бывает, но для подстраховки. Кстати, в любом случае одна из строк - первая или вторая, окажутся ненужными...
Kill iFullName$
'Собственно удаление беззащитного файла
ActiveWorkbook.Close saveChanges:=False
'Закрыть файл без сохранения (ибо в режиме xlReadOnly без saveChanges:=False он будет спрашивать, куда сохранить изменения).
Сообщ. #907524
16.05.2007 10:41
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 23.06.2008 8:38
Сообщ.: 91, Visits: 451
А вот для документов Word подобное можно делать?
Сообщ. #913301
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, VladConn

Время GMT +3:00, Сейчас 10:53