Доброго времени суток.
Изучаю AutoIt второй день и решил написать скрипт, который бы блокировал доступ к сайтам, так сказать практикуюсь.
Код скрипта следующий:
При запуске выдается ошибка (cм. вложение)
Изучаю AutoIt второй день и решил написать скрипт, который бы блокировал доступ к сайтам, так сказать практикуюсь.
Код скрипта следующий:
Код:
#requireadmin ;Запрашиваем права администратора
#Include <File.au3>
Dim $WebAddress ;Переменная хранящая веб-адрес
Dim $FileHandle ;Указатель на файл
Dim $FileText ;Переменная для хранения текста файла
Dim $TextLines ;Массив для хранения строк файла
Dim $TextLineNumber ;Переменная для хранения номера совпавшей строки
$WebAddress = InputBox("Блокировка сайта", "Введите адрес веб-сайта," & _
"который необходимо заблокировать" & _
" (например порнуха точка ком):", "", "", 318, 140 ,553, 292, 0) ;Записываем адрес введенный пользователем
If $WebAddress = "" Then ;Если ничего не введено
Exit ;то выходим из программы
Else
$FileHandle = FileOpen(@WindowsDir&"\System32\drivers\etc\hosts", 0) ;Открываем файл hosts для чтения и считываем его дескриптор
If $FileHandle = -1 Then ;Проверяем доступ к файлу
MsgBox(16, "Ошибка", "Невозможно открыть файл!")
Exit
EndIf
$FileText = FileRead($FileHandle) ;Считываем файл в переменную FileText
$TextLines = StringSplit($FileText, @CRLF, 1) ;Разбиваем текст на строки
;------- Проверяем записан ли сайт в списке блокированных --------
$TextLineNumber = -1
For $i = 0 To UBound($TextLines) Step +1 ;Узнаем размер массива и считываем содержимое его строк в порядке убывания
If StringInStr($TextLines[$i], $WebAddress) Then ;Если сайт присутствует в списке файла hosts
$TextLineNumber = $TextLines[$i] ;Записываем индекс текущего элемента массива
EndIf
Next
FileClose($FileHandle)
;-----------------------------------------------------------------
$FileHandle = FileOpen(@WindowsDir&"\System32\drivers\etc\hosts", 1) ;Открываем файл теперь для записи
If $FileHandle = -1 Then ;Проверяем доступ к файлу
MsgBox(16, "Ошибка", "Невозможно открыть файл!")
Exit
EndIf
If $TextLineNumber <> -1 Then ;Если был записан номер совпавшей строки
If MsgBox(4, "Ошибка", "Данный сайт уже забанен!"& _
" Разблокировать его?") = 6 Then ;Спрашиваем у пользователя о разблокировке
_FileWriteToLine($FileHandle, $TextLineNumber, "", 1) ;Если согласился удаляем строку с записью данного сайта
FileClose($FileHandle) ;Закроем файл
Exit
EndIf
Else
FileWriteLine($FileHandle, "127.0.0.1 " & $WebAddress) ;Заблокируем сайт
FileClose($FileHandle) ;Закроем файл
EndIf
EndIf
При запуске выдается ошибка (cм. вложение)