Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Ответить
Настройки темы
[Архив - Часть 1.2] AutoIt скрипты

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.
Можно ли с помощью AutoIt выбрать каталог? Хочу нацарапать оболочку, которая мне будет конфиги для nnBackup писать, дык выбрать каталог для бэкапа пока только вручную получается... Нельзя ли как-нть вывалить стандартный диалог по выбору файлов-папок, и получить из него результат действий пользователей?

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 10:47, 10-02-2006

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
Цитата:
Удаляются не все дублирующиеся блоки
ёлы-палы, такую грубую ошибку прозевал!... функция _DupURLsInArray возвращала неотсортированные данные, а это как известно перепутывает индексы при удалении, профиксил.

Ладно, коли такое дело переделал функцию - теперь она возвращает начало и конец продублированных блоков (от содержания строки отказался, т.к. невостребовано). Далее - предыдущий вариант страдал нелогичностью по отношению к операциям ввода-вывода, то смотрим в массив, то в файл.... зачем тогда было его загружать?.. Поэтому все операции с файлом (в т.ч. удаление строк) переделал для массива, в заключении готовый массив выгружается поверх старого файла:
Код: Выделить весь код
#include <File.au3>
#include <Array.au3>

$File = "c:\test.txt"

Dim $FileLines
_FileReadToArray ($file, $FileLines)
; Возвращаем данные о дублирующихся блоках
$DupLines = _DupBLKsInArray ($FileLines, '#URL', @TAB & 'URL=')
; Страховка от пустого массива если дублей нет
If $DupLines [0][0] >0 Then
    For $i=$DupLines [0][0] To 1 Step -1
        For $j=$DupLines [$i][1] To $DupLines [$i][0] Step -1
            _ArrayDelete ($FileLines, $j)
        Next
    Next
    _FileWriteFromArray($File, $FileLines, 1)
EndIf

; Возвращает отсортированный двумерный массив со счетчиком, содержащий
; начало и конец продублированных блоков, в качестве параметров принимаются
; строки, отмечающие начало блока и начало ключевой строки
Func _DupBLKsInArray (ByRef $array, $BlkStartLine, $BlkKeyLine)
    Local $i, $i, $BlkStart, $res [1][2] = [[0,0]]
    Local $BlkStartLen= StringLen ($BlkStartLine)
    Local $BlkKeytLen = StringLen ($BlkKeyLine)
    ; рабочий массив для отметки обработанных дублей
    Local $flags [$array [0] +1]
    For $i=1 To $array [0]
        If StringLeft ($array [$i], $BlkKeytLen) = $BlkKeyLine Then
            For $j=$i+1 To $array [0]
                If StringLeft ($array [$j], $BlkStartLen) = $BlkStartLine Then
                    ; отмечаем начало текущего блока
                    $BlkStart = $j
                    ; если у текущего дубля нет конца, значит это он и есть
                    If $res [$res [0][0]][1] =0 Then $res [$res [0][0]][1] = $BlkStart -1
                EndIf
                If $flags [$j] <> 1 Then
                    If $array [$i] = $array [$j] Then
                        ReDim $res [$res [0][0]+2][2]
                        $res [0][0] = $res [0][0] +1
                        ; вспоминаем начало текущего блока
                        $res [$res [0][0]][0] = $BlkStart
                        $res [$res [0][0]][1] = 0
                        $flags [$j] = 1
                    EndIf
                EndIf
            Next
            ; если конца до сих пор не нашли, значит этот блок последний
            If $res [$res [0][0]][1] =0 Then $res [$res [0][0]][1] = $j-1
        EndIf
    Next
    ; сортировка массива по возрастанию
    _ArraySort ($res, 0, 1, 0, 2)
    Return $res
EndFunc

Последний раз редактировалось amel27, 13-11-2006 в 12:38. Причина: косметические мелочи

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:32, 10-11-2006 | #461



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для TERMINAL

Ветеран


Сообщения: 753
Благодарности: 28

Профиль | Отправить PM | Цитировать


H E L P ! ! !
Написал кучу скриптов с помощью AutoIt и тут вдруг обновляется Dr.WEB и начинает запрещать работать с этим прекрасным редактором.
Начал проверять свои рабочие скрипты-на половину все заражённые вирусом BackDoor.Hengto .Скачал с оф.сайта опять эту прогу-проверил (в ней вирусы зашиты). Так почему же тогда раньше ВЕБ не кричал и почему не все тогда скрипты заражены??!! или у меня на компе просто глюк???

-------
Автоматизация прежде всего....


Отправлено: 11:20, 10-11-2006 | #462


Аватара для XXXler

Ветеран


Сообщения: 1073
Благодарности: 194

Профиль | Отправить PM | Цитировать


TERMINAL, у меня Nod32 одно время обзывал скрипт для генерации Inf как Trojan.Autoit.A - потом прошло... Хотя хз, мож ты чего-то и хватанул

-------
Исходные коды проектов


Отправлено: 13:52, 10-11-2006 | #463


Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


TERMINAL
Цитата:
в ней вирусы зашиты
Нет в AutoIt вируса (для очистки совести проверил Dr.Web-ом, обновленным сегодня). Это у тебя на компе зараза поселилась и уже расползается...

Цитата:
почему не все тогда скрипты заражены
Ну, наверное здоровые скрипты ты компилировал до заражения компа вирусягой.

-------
Sanja Alone's site (ConvRegToAU3, OEsr, RSA, AutoIt скрипты)


Отправлено: 13:58, 10-11-2006 | #464


Аватара для TERMINAL

Ветеран


Сообщения: 753
Благодарности: 28

Профиль | Отправить PM | Цитировать


Да не должен подхватить-2 антивирусника стоят...
Облазил весь инет, попровирял разными антивирусниками-все отвечают что файл ОК - незаражон...,а ВЕБ орёт и блокирует.
Может это у него такая реакция на скрипт??????,правда он не может сказать что файл якобы ВОЗМОЖНЫЙ ВИРУС-просто берёт и блокирует....У кого то такое было????????просто хочется быть уверенным что это из-за скрипта, а не вирус...

-------
Автоматизация прежде всего....


Отправлено: 14:02, 10-11-2006 | #465


Аватара для TERMINAL

Ветеран


Сообщения: 753
Благодарности: 28

Профиль | Отправить PM | Цитировать


Sanja Alone Я скачиваю повторно файл установки AutoIt с оф.сайта-начинаю устанавливать и ВЕБ начинает орать опять на установочные файлы.
НАРОД ПЛЗ !
Пришлите мне какой нибудь скрипт "ехе" упакованый с "au3" на trm6@mail.ru , а я его проверю....

-------
Автоматизация прежде всего....


Отправлено: 14:41, 10-11-2006 | #466


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27
Всё работает как по маслу! Огромное Мерсий!

TERMINAL
У меня тоже на несколько закомпилированных скриптов, Dr.Web ругается на вирус BackDoor.Hengto - Наверно это из за структуры самого скрипта. Но это не значит что там есть вирус, это значит что Dr.Web (и ему подобные) не достаточно “умный” (при всё уважении к нему ), чтобы определить является ли это действительно вирусром, и просто напросто перестроаховывается. У меня стоит последний Kaspersky, он молчит, также молчат проверки online, так что это глюк в этой базе данных доктора (имхо).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 01:02, 11-11-2006 | #467


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27
Есть небольшая пролблема с функцией, которую ты написал для проверки подключённости к интернету ...

При проверке синтаксиса в SciTE, выдаётся ошибка, а именно, эта строка подчёркнута как ошибочная:

Код: Выделить весь код
SetError(err.number)
Мне нужно чтобы в случае не подключения, функция лишь возвращала уровень ошибочности (@Error = 1), и чтобы также можно былло проверть, если @error = 1, значит вывожу сообщение (не в функции, а в теле скрипта), и в нём сообщаю о том какая ошибка произошла (значение ошибки должно тоже возвращаться из функции).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 22:58, 12-11-2006 | #468


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Creat0R
опечатку исправил... только почему-то на моем компе она перестала работать - вываливает ошибку таймаута и все тут, хотя точно знаю что все работало!... уже и PROXYCFG проверил - ничего не помогает... ладно, сейчас некогда ковыряться может позже разберусь в чем причина.
Цитата:
если @error = 1, значит вывожу сообщение (не в функции, а в теле скрипта), и в нём сообщаю о том какая ошибка произошла (значение ошибки должно тоже возвращаться из функции)
Обычно делается так: в норме функция возвращает "0" или там еще что по контексту, если ошибка то "-1" или типа того, при необходимости номер ошибки можно восстановить через @error. Это особенно удобно если функция по задумке должна возвращать полезную информацию - в этом случае возможности передать тип ошибки весьма ограничены...
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:26, 13-11-2006 | #469


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27
Если я сделаю так (см. ниже), будет ли это являться корректной проверкой подключения?

Код: Выделить весь код
;Установка функции перехвата COM-ошибок
 $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")

 If IsNotConnect() Then MsgBox (48,"Проверка связи","Интернет-соединение отсутствует по причине:" & @CRLF & $oMyError.description)

;Функция проверки на отсутствие соединения
 Func IsNotConnect()
    Local $oHTTP=ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("GET","http://www.google.com")
    $oHTTP.Send()

    Return @error
 EndFunc

;Обработчик COM-ошибок
Func MyErrFunc()
    Select
        Case $oMyError.source = "WinHttp.WinHttpRequest"
            SetError($oMyError.number)
        Case Else
            Return $oMyError.description
    EndSelect
Endfunc

P.S:

Просто интересно, как ты разукрасил код скрипта? неужели каждую команду (и разделители) обрамлял тегом цветов и выделения?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 02:22, 14-11-2006 | #470



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход