PDA

Показать полную графическую версию : [решено] неприрывное чтение данных


O L E G
12-05-2012, 09:33
доброго времени суток,подскажите можно написать скрипт,который неприрывно будет обращаться к определенному файлу или папке и считывать данные) для чего мне это что бы файл(папка) были заняты системой и их не возможно было бы удалить и переименовать(изменить) возможно ли это?

Iska
12-05-2012, 13:30
Непрерывно считывать не надо. Достаточно просто открыть для операций записи. Например:
With WScript.CreateObject("Scripting.FileSystemObject")
With .OpenTextFile("E:\Песочница\0139\0001.txt", 8)
Do
WScript.Sleep 100
Loop

.Close
End With
End With

Папку, содержащую открытый файл, Вы не сможете переместить в Корзину.

Iska
14-05-2012, 09:52
Ок спасибо это помогло,а возмо ли его модифицировать
Так что бы открывать не только txt файлы но и exe »
Возможно, но может быть чревато. Не рекомендую.

папки »
Нет. См. выше:
Папку, содержащую открытый файл, Вы не сможете переместить в Корзину. »
Удалить (без использования корзины) папку Вы также не сможете, однако прочие файлы из папки помимо открытого — будут удалены.

и так далее »
Что ещё?

Ошибка при открытии файла hosts »
У Вас нет прав или привилегий на открытие этого файла. Либо антивирус банально отфутболивает.

Зачем Вам этот файл держать открытым?!

Iska
14-05-2012, 10:25
O L E G, мне сложно воспринимать поток сознания. Я предпочитаю видеть нормальные предложения на внятном русском языке, начинающиеся с заглавных букв и заканчивающихся точкой, або иным знаком препинания. Не возражаю, чтобы пишущий пользовался словарём при написании своего поста.

O L E G
14-05-2012, 10:34
Забудь.!

Дальше сам как нибудь разберусь.

O L E G
14-05-2012, 13:08
Додумался и сам сделал).
Работает с любыми файлами.

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\e7.jpg", ForAppending, 8)
Do
WScript.Sleep 10
Loop

Только пока не могу разобрать, можно ли указать для чтения не один файл (c:\e7.jpg),а к примеру не сколько?

O L E G
14-05-2012, 14:01
Все СПС дальше то же разобрался сам.

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, f, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\2.txt", ForReading, 1)
Set s = fso.OpenTextFile("C:\1.txt", ForReading, 1)
Do
WScript.Sleep 1
Loop

O L E G
14-05-2012, 16:30
Iska, Скажи пожалуйста, такие действия с реестром можно провести?

Iska
15-05-2012, 23:03
O L E G, какие? Если Вы хотите таким образом заблокировать раздел реестра от удаления, должен Вас разочаровать: на WSH сие невозможно.

DmitriiV
16-05-2012, 09:04
O L E G, а почему Вы пытаетесь защитить объект именно таким способом. Разве нельзя воспользоваться средствами безопасности NTFS?

O L E G
16-05-2012, 09:10
DmitriiV, под Администратором, разрешения легко убрать и многие гадости это умеют




© OSzone.net 2001-2012