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

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

Закрытая тема
Настройки темы
[архив - Часть 2] AutoIt скрипты

(*.*)


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


Конфигурация

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


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







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


Руководство к действию по работе c AutoIt.


Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).
Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).



Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

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

Отправлено: 00:02, 05-02-2006

 

Аватара для Maza Faka

Ветеран


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

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


mikola1983
Цитата AutoIt help:
Код: Выделить весь код
If Not IsAdmin() Then
    RunAsSet('USER', @Computername, 'PASSWORD')
    Run("C:\Program\program.exe")
    Exit
EndIf

Отправлено: 08:30, 20-08-2007 | #331



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

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


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата:
после удаления элемента (_ArrayDelete()), меняется размерность массива ($StrArray[0]), а в цикле идёт обращение к прежней размерности массива, поэтому возникает ошибка?
Да, всё верно, кстати, размерность меняется, но в отличие от твоего примера в скобках, нулевой элемент может и не содержать этих данных , проверяется как по Ubound()-1

Цитата:
в русской справке такого нет
Я давно пришёл к выводу, что оригинал всегда надёжнее, при переводе можно что-то упустить, что то забыть, не так уж и прост весь процесс перевода, особенно такого файла как справка по AutoIt

Но тут конечно нужны знания (основные) Английского, хотя куда без них учиться программировать

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

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

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


Отправлено: 09:35, 20-08-2007 | #332


Googler


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

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


Цитата Creat0R:
Т.е так:
Код:
Код: Выделить весь код
'(?s)(?m)(^[^\n]+\n)(.*?)^\1'
угу, теоретически на сохранение скобок тратится какое-то время

Цитата Maza Faka:
Можешь обьяснить почему?
ну, CreatOR уже все объяснил... могу только предложить как альтернативу RegExp-вариант:
Код: Выделить весь код
Func _LinesDelete ($text, $string)
    If StringRight($text,2)<>@CRLF Then $text &= @CRLF
    $string = StringRegExpReplace($string, '([][^()?.|{}*+\\])', '\\\1')
    Return StringRegExpReplace($text, '(?m)(?i)^'& $string &'[\r\n]+', '')
EndFunc

Отправлено: 11:12, 20-08-2007 | #333


Пользователь


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

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


Maza Faka,

If Not IsAdmin() Then
RunAsSet('a.pupkin', 'trew', '123qwe')
Run('\\Distr\XnView-win.exe')
Exit
EndIf
MsgBox(0, 'Message', 'Now running with admin rights.')

не хочет работать .в чем проблемма?

Отправлено: 15:31, 20-08-2007 | #334


Аватара для spooll

Новый участник


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

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


Изображения
Тип файла: jpg vot2.jpg
(136.5 Kb, 9 просмотров)
Тип файла: jpg vot.jpg
(53.8 Kb, 8 просмотров)

Creat0R,

Лично на моем компе, хоть тресни, но виснет в этом моменте
PHP код: Выделить весь код

WinWait("Выбор программной группы""Выберите из существующих или")

ControlClick("Выбор программной группы""""Button2"

(см скрин)

Тот что ты предложил с .

PHP код: Выделить весь код

Opt("RunErrorsFatal"0)

Opt("WinTitleMatchMode", -3)
Opt("WinTextMatchMode"2

Зависает на первом же окне ((

WinWait("Добро пожаловать", "&Далее >")
ControlClick("Добро пожаловать", "&Далее >", "Button1")

приложу скрин этих окон с AutoIT info.

если все верно и не ясно почему не работает, я пойду повешусь и не буду больше доставать, но может я че не так делаю?!

Отправлено: 16:05, 20-08-2007 | #335


Аватара для Maza Faka

Ветеран


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

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


mikola1983
Цитата:
Run('\\Distr\XnView-win.exe')
Попробуй прописать полный путь к запускаемому файлу.

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 16:32, 20-08-2007 | #336


Аватара для Maza Faka

Ветеран


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

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


Почему функция возвращает переменную $count равную нулю, хотя файлы были найдены и удалены? Сначала я подумал, что это происходит если существуют подкаталоги, так, как при нахождении каталога функция вызывает саму себя и соответсвенно снова происходит декларирование переменной: Local $count = 0, но удалив подкаталоги, я обнаружил, что проблема не исчезла, функция всё так же возвращает переменную $count равной нулю. Я понимаю, что это даже не проблема, так как переменную можно обьявить вне функции и тогда счётчик будет приращиваться, но всё же интересно, почему так происходит?

Код: Выделить весь код
Dim $delFile[3] = [2, "soccer5.bmp", "soccer9.bmp"], $path[3] = [2, "c:\test", "c:\1"]

For $p = 1 To $path[0]
    For $f = 1 To $delFile[0]
        $Del = DeleteFile($path[$p], $delFile[$f])
    Next
Next
MsgBox(64, "Result", $Del)

Func DeleteFile($path, $delfile)
    Local $count = 0
    $search = FileFindFirstFile($path & "\*.*")
    While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop
            $Full_file = $path & "\" & $file
            If FileGetAttrib($Full_file) = "D" Then
                DeleteFile($Full_file, $delfile)
            ElseIf $file = $delFile Then
                If FileDelete($Full_file) Then $count += 1
            EndIf
        WEnd
        FileClose($search)
        Return $count & " files deleted"
    EndFunc

Отправлено: 16:53, 20-08-2007 | #337


Аватара для Creat0R

Must AutoIt


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

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


spooll,
Цитата:
виснет в этом моменте
Значит пробуй так:

Код: Выделить весь код
Opt("RunErrorsFatal", 0) 
Opt("WinTitleMatchMode", -2) 
Opt("WinTextMatchMode", 2)

WinWait("Выбор программной группы", "Папки с Программами:")

...
Текст лучше подбирать полный.
Если программа 1c небольшая, залей куда нибудь (или дай линк на неё), попробую потестить у себя.

Maza Faka,
Цитата:
Почему функция возвращает переменную $count равную нулю, хотя файлы были найдены и удалены? Сначала я подумал, что это происходит если существуют подкаталоги, так, как при нахождении каталога функция вызывает саму себя и соответсвенно снова происходит декларирование переменной: Local $count = 0, но удалив подкаталоги, я обнаружил, что проблема не исчезла, функция всё так же возвращает переменную $count равной нулю.
Именно потому, что в начале функции обнуляется переменная $count...

На мой взгляд тут есть два варианта решения - 1) Проверять не обьявлена ли уже переменная (If Not IsDeclared($count) Then Local $count = 0), 2) (более правильный) - добавлять к $count возвращённое значение от повторного вызова функции DeleteFile()...

Код: Выделить весь код
Dim $delFile[3] = [2, "soccer5.bmp", "soccer9.bmp"], $path[3] = [2, "c:\test", "c:\1"]

For $p = 1 To $path[0]
    For $f = 1 To $delFile[0]
        $Del = DeleteFile($path[$p], $delFile[$f])
    Next
Next
MsgBox(64, "Result", $Del & " files deleted")

Func DeleteFile($path, $delFile)
    Local $count = 0
    $search = FileFindFirstFile($path & "\*.*")
    While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop
        $Full_file = $path & "\" & $file
        If FileGetAttrib($Full_file) = "D" Then
            $count += DeleteFile($Full_file, $delFile)
        ElseIf $file = $delFile Then
            $count += FileDelete($Full_file)
        EndIf
    WEnd
    FileClose($search)
    Return $count
EndFunc

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

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

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


Отправлено: 17:52, 20-08-2007 | #338


Аватара для spooll

Новый участник


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

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


Creat0R
весит 27 мб, желательно опробовать на паре компов(или несколько раз), т.к слабые у нас грузят окна бывает порядком больше времени, но что характерно, даже если убрать время, то при появлении окна всеравно ничего не происходит =\
http://www.rapidshare.ru/376488
заранее большое спасибо

Отправлено: 18:25, 20-08-2007 | #339


Аватара для Maza Faka

Ветеран


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

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


Creat0R
Цитата Creat0R:
На мой взгляд тут есть два варианта решения - 1) Проверять не обьявлена ли уже переменная (If Not IsDeclared($count) Then Local $count = 0), 2) (более правильный) - добавлять к $count возвращённое значение от повторного вызова функции DeleteFile()...
Первый вариант я попробовал сразу же, как обнаружил проблему с приращением счётчика, не помогло, сейчас попробовал 2-ой вариант, тоже не работает. Интересная задачка

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 19:04, 20-08-2007 | #340



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

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

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




 
Переход