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

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
у StringSplit() есть флаг, позволяющий использовать более одного символа для разбиения:
Я его пробовал, в этом случае он всё ровно добавляет в массив пустую строку...

Цитата:
уж коли зашла речь про StringRegExp(), то она вполне самодостаточна:
Этот пример должен возвращать массив с подделенными строками на @LF? возвращается массив с одним пустым, и при чём нудевым элементом

schel4ok
Я сразу не понял что речь идёт об установке файла, а не его запуске (это ведь требуется?)...
Для установки действительно будет полезна функция предложенная amel27 чуть выше, сам нечто подобным пользуюсь для установки Inf файлов (правда из батника ).

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

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

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


Отправлено: 20:03, 21-06-2007 | #71



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

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


Старожил


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

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


Помогите, пожалуйста, разобраться:
Код: Выделить весь код
While 1
ControlClick  ('Abbyy FineReader Professional v8.0 keygen', '', 'Button4' ) ;генерация серийника
$GetSN=ControlGetText ('Abbyy FineReader Professional v8.0 keygen', '', 'Edit1' )
; ввод серийника
ControlSetText ('ABBYY FineReader 8.0 Professional Edition Try&Buy', '&Введите серийный номер', 'Edit1', $GetSN)
ControlClick('ABBYY FineReader 8.0 Professional Edition Try&Buy', '&Введите серийный номер', 'Button1')
;если серийник не верен, то появляется окно 
;('ABBYY FineReader 8.0 Professional Edition Try&Buy', 'Проверьте правильность введенного серийного номера.')
If WinExists ('ABBYY FineReader 8.0 Professional Edition Try&Buy', 'Проверьте правильность введенного серийного номера.') Then ContinueLoop
	If Not WinWaitActive ('ABBYY FineReader 8.0 Professional Edition Try&Buy', 'Проверьте правильность введенного серийного номера.',5) Then
	WinActivate ('ABBYY FineReader 8.0 Professional Edition Try&Buy', 'Проверьте правильность введенного серийного номера.')	
	ControlClick ('ABBYY FineReader 8.0 Professional Edition Try&Buy', 'Проверьте правильность введенного серийного номера.','Button1'); не закрывает окно
	; Send ( '{ENTER}' ) тоже не закрывает это окно
	EndIf
ExitLoop
Wend
Info окна
Код: Выделить весь код
 >>>> Window <<<<
Title:	ABBYY FineReader 8.0 Professional Edition Try&Buy
Class:	#32770
Position:	332, 333
Size:	366, 126
Style:	0x94C801C5
ExStyle:	0x00010101

>>>> Control <<<<
Class:	Button
Instance:	1
ID:	2
Text:	ОК
Position:	478, 422
Size:	75, 23
ControlClick Coords:	35, 11
Style:	0x50030000
ExStyle:	0x00000004

>>>> Mouse <<<<
Position:	178, 71
Cursor ID:	0
Color:	0xE9F1F5

>>>> StatusBar <<<<

>>>> Visible Text <<<<
ОК
Проверьте правильность введенного серийного номера.
Окно не закрывается и все идет по кругу, т.е. генерация и серийника и появление еще одного окна

Отправлено: 22:15, 21-06-2007 | #72


Аватара для proxy

Старожил


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

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


Diamond, спасибо за подсказки, это очень интересно.
Сейчас считываю весь файл в gui List и от него "играю",
но как варинат с текстом в масиве.....может пригодится.

Creat0R - спасибо за пример, Diamond пару постов выше
уже показал твой пример. Я сейчас изменел первичный замысел
и сейчас не требуется замена тсрок, но на вооружение взял.


И ещё, скромный вопрос, auto IT это замечательно, но создовать
уж созданное думаю нет серьезного смысла.....может знакомы
с языком С++ , VB, ..... что лучше применить к изучению для
написания подобных приложений?

п.с.: я не сравниваю аутоИТ и другие языки, я хочу понять
какой, в целом, язык оптимальние и приняться к его изучению.

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 22:57, 21-06-2007 | #73


Аватара для Creat0R

Must AutoIt


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

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


gvshil
Цитата:
Окно не закрывается и все идет по кругу
Иногда даже закрытие окна, на самом деле его не удаляет из списка существующих окон, а просто скрывает, поэтому думаю нужно проверять видимость окна...

Код: Выделить весь код
If _WinIsVisible('ABBYY FineReader 8.0 Professional Edition Try&Buy', 'Проверьте правильность введенного серийного номера.') Then ContinueLoop

Func _WinIsVisible($Title, $Text)
    Return BitAND(WinGetState($Title, $Text), 2)
EndIf
proxy
Цитата:
что лучше применить к изучению для
написания подобных приложений?
Каких приложении?

AutoIt в основном предназначен для написания скриптов в помощь автоматизации запуска/установки приложении и ежедневных системных задач, но кроме этого на нём также возможно писать программы среднего (а может и высшего) уровня.

Цитата:
какой, в целом, язык оптимальние и приняться к его изучению
AutoIt написан на C++, думаю что именно изучение C++ и будет оптимальным языком программирования (это конечно, очень и очень Имхо ).

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

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

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


Отправлено: 23:08, 21-06-2007 | #74


Старожил


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

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


Creat0R
Совсем я запутался.
Если не трудно, укажите куда конкретно в моем примере нужно вставить проверку.

Отправлено: 23:26, 21-06-2007 | #75


Аватара для Creat0R

Must AutoIt


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

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


gvshil
Цитата:
куда конкретно в моем примере нужно вставить проверку.
Вместо всех функции проверки на существование окна (WinExists()). А саму функцию _WinIsVisible в конец файла.

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

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

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


Отправлено: 00:54, 22-06-2007 | #76


Ветеран


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

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


Вложения
Тип файла: zip tegabackup.zip
(12.9 Kb, 216 просмотров)

Написал скрипт для архивирования.
если кому надо, поюзайте, расскажете, как оно....

вот, из ридмишки.
Цитата:
1. ВВЕДЕНИЕ

Когда-то я пользовался nnBackup. Но ограничение в 2Гб на архив меня убивало. И убивает посейчас. Кроме того, nnBackup, как и многие архиваторы, использующиеся для резервного копирования, не умеют архивировать открытые другими программами файлы(дружно вспомним базы 1С).
И вот, я решил устранить эти недостатки. Эти устранил. вроде бы. А вот чего этот скрипт не умеет, см. в самом конце.


2. ОПИСАНИЕ

Данный скрипт представляет собой "оболочку" для архиватора 7-zip(www.7-zip.org) начиная с версии 7.47.
Основное назначение - резервное архивирование данных.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:00, 22-06-2007 | #77


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


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

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


Creat0R
Цитата:
Так вроде правильнее:
Если в файл добавить следущую комбинацию:
Код: Выделить весь код
$file = FileOpen("test.txt",2)
FileWrite($file,"" & @CRLF)
FileWrite($file,"" & @CRLF)
FileWrite($file,"" & @CRLF)
То твоя функция возвращает массив из 7 пустых строк, хотя на самом деле строк 4.
Необходимо учитывать все возможные типы завершения строк, как я уже сказал, всего их 3. (...правда, редактор "Notepad.exe" об этом не знает.)
Если автор UDF-функции упустил из виду @CR - то ты, в данном случае проигнорировал @CRLF.
Опишу всё подробно:
Код: Выделить весь код
$hFile = FileOpen("test.txt", 0)

$text = FileRead($hFile)
$text = StringRegExpReplace($text,"\r\n",@LF) ; заменяем все комбинации @CRLF на @LF
$text = StringRegExpReplace($text,"\r",@LF) ; заменяем все оставшиеся @CR на @LF
; И теперь, когда мы точно уверены что все строки завершаются только символом @LF - делим текст:
$aArray = StringSplit($text,@LF)
;~ Иными словами, всё это можно реализовать так:
Код: Выделить весь код
$hFile = FileOpen("test.txt", 0)
$aArray = StringSplit(StringRegExpReplace(FileRead($hFile),"\r\n|\r", @LF), @LF)
А сама функция должна выглядеть так:
Код: Выделить весь код
Func _FileReadToArray($sFilePath, ByRef $aArray)
    ;==============================================
    ; Local Constant/Variable Declaration Section
    ;==============================================
    Local $hFile = FileOpen($sFilePath, 0)

    If $hFile = -1 Then Return SetError(1)

    $aArray = StringSplit(StringRegExpReplace(FileRead($hFile),"\r\n|\r", @LF), @LF)

    FileClose($hFile)
    Return 1
EndFunc   ;==>_FileReadToArray
З.Ы. Сколько я не тестировал, всё время получается правильный массив. В чём моя ошибка?

Отправлено: 01:40, 22-06-2007 | #78


Аватара для Creat0R

Must AutoIt


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

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


Diamond
Цитата:
Иными словами, всё это можно реализовать так:
Да, но разве @CRLF это не одно и тоже что @CR & @LF? если одно и тоже, тогда зачем проверять ещё и @LF, можно только лишь @CR заменить на @LF, и делить на @LF (ведь в переменной останутся только @LF'ы)...

$aArray = StringSplit(StringReplace(FileRead($hFile), @CR, @LF), @LF)

На выходе имеется тот же массив...

Но у меня проблема не в этом, а как раз в содержимом массива...

Цитата:
всё время получается правильный массив
А вот у меня даже с таким примером:

Код: Выделить весь код
#include <Array.au3>

Dim $Array

$TestFileHandle = FileOpen("Test.txt", 2)

FileWrite($TestFileHandle, @LF & "Line1" & @CR & "Line2" & @CR & "Line3" & @CR & "Line4" & @LF)

FileClose($TestFileHandle)

_FileReadToArray("Test.txt", $Array)

_ArrayDisplay($Array)

Func _FileReadToArray($sFilePath, ByRef $aArray)
    ;==============================================
    ; Local Constant/Variable Declaration Section
    ;==============================================
    Local $hFile = FileOpen($sFilePath, 0)

    If $hFile = -1 Then Return SetError(1)

    $aArray = StringSplit(StringRegExpReplace(FileRead($hFile),"\r\n|\r", @LF), @LF)

    FileClose($hFile)
    Return 1
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


Отправлено: 02:17, 22-06-2007 | #79


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


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

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


Creat0R
Цитата:
Да, но разве @CRLF это не одно и тоже что @CR & @LF? если одно и тоже, тогда зачем проверять ещё и @LF, можно только лишь @CR заменить на @LF, и делить на @LF (ведь в переменной останутся только @LF'ы)...
Теперь у меня началось - надеюсь это не заразно...
Цитата:
Почему то первый и последний элемент содержат символы перевода строки
Я посмотрел содержимое файла в редакторе "Bred" и... оказалось что полученный массив полностью соответствует текстовому файлу... 6 строк, первая и последняя пустые.
Всё верно!

Отправлено: 02:38, 22-06-2007 | #80



Компьютерный форум 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




 
Переход