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

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

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

(*.*)


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


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

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

 

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


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

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


Цитата Creat0R:
Нужно везде ставить проверки, на существования окна, активность окна, и т.п. »
Это типа:
WinWait
WinActivate
WinWaitActive ?
Попробую...
Цитата Creat0R:
А также все Send() наверняка можно переделать в ControlClick, но точно сказать немогу, негде проверить. »
'ControlClick' - это что-то с мышкой связанное? Я думал, лучше отказаться от этого, пользваться исключительно клавишами. Но у меня нет большого опыта в этих делах...
Цитата Creat0R:
Да, в начало скрипта поставь #NoTrayIcon »
Спасибо, попробую.

Отправлено: 09:07, 13-12-2007 | #861



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

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


Аватара для TERMINAL

Ветеран


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

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


Creat0R, чего-то я не пойму где здесь прописовать какие копировать папки и куда.......

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


Отправлено: 09:32, 13-12-2007 | #862


Аватара для Creat0R

Must AutoIt


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

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


SergeyAV,
Цитата:
'ControlClick' - это что-то с мышкой связанное?
Это нажимает на определённый элемент (кнопка и т.п)...

Чтобы узнать класс/имя элемента, нужно использовать инструмент Au3Info (вместе с AutoIt идёт).

Вот немного подправленая версия твоего скрипта, я добавил немного комментов, присмотрись к ним

Скрипт...
Код: Выделить весь код
; User Var's
$SF_1 = "setup.exe" ; Setup File Name
$UR_1 = "xxx" ; User Registration Code Part 1
$UR_2 = "xxxxxxxx" ; User Registration Code Part 2
$UR_3 = "Name" ; User Registration Name
$UR_4 = "o" ; User Registration Surname
$UR_5 = "Firme" ; User Registration Organization
$UR_6 = "o" ; User Registration Supplier
$UR_7 = "o" ; User Registration Phone No.

Run($SF_1)

; Welcome
WinWait ("Установка Autodesk","Перед установкой AutoCAD 2006 ","Button1")
ControlClick ("Установка Autodesk","Перед установкой AutoCAD 2006 ","Button1")
WinWait ("Установка AutoCAD 2006","Добро пожаловать в Мастер уста","Button1")
ControlClick ("Установка AutoCAD 2006","Добро пожаловать в Мастер уста","Button1")

; License
WinWait("Установка AutoCAD 2006","Страна или территори")
WinActivate("Установка AutoCAD 2006","Страна или территори")
;Если используется AutoIt 3.2.10.0, то можно перед Send использовать SendKeepActive("Заголовок", "Текст").
Send("{TAB}{TAB}{UP}{ENTER}") ; Это можно заменить на ControlClick(...).

; Serial
WinWait("Установка AutoCAD 2006","Серийный номер ")
WinActivate("Установка AutoCAD 2006","Серийный номер ")

;Тут можно заменить на ControlSetText("Установка AutoCAD 2006", "", "Edit?") - где "?" нужно узнать идентификатор (Au3Info Tool)
SEND ( $UR_1 )

;Тут тоже можно заменить на ControlSetText(...)
SEND ( $UR_2 )

ControlClick ( "Установка AutoCAD 2006", "", "Button1" )

; User Information
WinWait("Установка AutoCAD 2006","Укажите в полях этог")
WinActivate("Установка AutoCAD 2006","Укажите в полях этог")

SEND ( $UR_3 ) ;Тут тоже можно заменить на ControlSetText(...)
SEND ("{TAB}") ;Это тогда не нужно будет
SEND ( $UR_4 ) ;Тут тоже можно заменить на ControlSetText(...)
SEND ("{TAB}") ;Это тогда не нужно будет
SEND ( $UR_5 ) ;Тут тоже можно заменить на ControlSetText(...)
SEND ("{TAB}") ;Это тогда не нужно будет
SEND ( $UR_6 ) ;Тут тоже можно заменить на ControlSetText(...)
SEND ("{TAB}") ;Это тогда не нужно будет
SEND ( $UR_7 ) ;Тут тоже можно заменить на ControlSetText(...)
SEND ("{TAB}") ;Это тогда не нужно будет

; почему не используется?
;ControlClick ( "Установка AutoCAD 2006", "", "Button4" )
Send("{ENTER}")
Sleep ( 250 )
Send("{ENTER}")
Sleep ( 250 )
Send("{ENTER}")
Sleep ( 250 )
Send("{ENTER}")
Sleep ( 250 )
Send("{ENTER}")
Sleep ( 250 )
Send("{ENTER}")

; Install Ends
WinWait( "Установка AutoCAD 2006","В&ывести файл Readme")
ControlClick ( "Установка AutoCAD 2006", "", "Button1" )
Sleep(1000)
Send("{SPACE}") ;Тут видимо можно заменить на ControlClick ( "Установка AutoCAD 2006", "", "Button?" )
Send("{ENTER}") ;И Тут.


P.S
Если AutoCad небольшая прога, могу потестить (чтобы усовершенствовать скрипт), всё ровно скоро систему нужно переустанавливать

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

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

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:50, 13-12-2007 | #863


Аватара для TERMINAL

Ветеран


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

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


SergeyAV, У меня тожк такая же проблема была с AutoCAD 2005-это клас из тех программ которые начинают себя неправильно вести при установке винды (я так думаю из-за отсутсвия драйверов). Я его оложил в долгий ящик, но скоро им займусь, если нужно- через неделю можешь спросить, может чем то помогу.
Creat0R, AutoCAD 2005 прога большая- у меня она помоему 400 мег.

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


Отправлено: 09:51, 13-12-2007 | #864


Аватара для Creat0R

Must AutoIt


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

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


TERMINAL,
Цитата:
где здесь прописовать какие копировать папки и куда
В скрипте с примером (Copy With Progress Example.au3)... первый параметр путь к папке которую нужно скопировать, второй параметр путь назначения (куда помещать скопированные файлы), третьи указывает метод замены (0 - не заменять существующие файлы, 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


Отправлено: 09:53, 13-12-2007 | #865


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


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

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


Цитата Creat0R:
Это нажимает на определённый элемент (кнопка и т.п)... »
Ясно.
Цитата Creat0R:
Чтобы узнать класс/имя элемента, нужно использовать инструмент Au3Info (вместе с AutoIt идёт). »
Ага! Вот этого мне и не хватало - я с AutoIt только начинаю разбираться...
Цитата Creat0R:
Вот немного подправленая версия твоего скрипта, я добавил немного комментов, присмотрись к ним »
Спасибо.
Цитата Creat0R:
Если AutoCad небольшая прога, могу потестить (чтобы усовершенствовать скрипт), всё ровно скоро систему нужно переустанавливать »
Она "немножко" большая - почти 600М . Хотя и хорошо пакуется - до 400М.

TERMINAL,
Цитата TERMINAL:
У меня тожк такая же проблема была с AutoCAD 2005-это клас из тех программ которые начинают себя неправильно вести при установке винды (я так думаю из-за отсутсвия драйверов). »
Драйвера все установлены; да и не причем тут это - не нужны Автокаду никакие драйвера. Другое дело, что установщик себя ведет действительно странно, но проблема решается другим способом, к топику отношения не имеющем.
Подробнее здесь:
http://forum.oszone.net/thread-61866.html
В 2-х словах: создается админстративная точка (модификация дистрибутива, точнее .msi), которая потом уже без проблем устанавливается...
Но с AutoIt разобраться все равно хотелось бы, хотя бы потому, что есть много других прог, где "автокадный способ" не прокатит...

Отправлено: 15:12, 13-12-2007 | #866


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


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

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


Ребят, подскажите. Это про калькулятор ).
1
...

$CTRL_btn1 = GUICtrlCreateButton("1", 54, 138, 36, 29)
$CTRL_btn2 = GUICtrlCreateButton("2", 93, 138, 36, 29)
$CTRL_btn3 = GUICtrlCreateButton("3", 132, 138, 36, 29)
$CTRL_btn4 = GUICtrlCreateButton("4", 54, 106, 36, 29)
$CTRL_btn5 = GUICtrlCreateButton("5", 93, 106, 36, 29)
$CTRL_EdtScreen = GUICtrlCreateEdit("0.", 8, 2, 239, 23,BitOR($ES_READONLY, $ES_RIGHT),$WS_EX_STATICEDGE)
$CTRL_LblMemory = GUICtrlCreateLabel("", 12, 39, 27, 26)
GUISetState (@SW_SHOW )

While 1

$msg = GUIGetMsg()

select
Case $msg = $CTRL_btn0
GUICtrlSetData($CTRL_EdtScreen, $CTRL_btn1 )
EndSelect

WEnd

Почему он в поле $CTRL_EdtScreen вводит 4 ??(причем если помять кнопку не $CTRL_btn1 а там например $CTRL_btn5 поставить, то покажит вместо 5 на 3 больше, т.е. 8) или так нельзя задавать значения, а только так GUICtrlSetData($CTRL_EdtScreen, "1")
Но если так писать то в поле $CTRL_EdtScreen получается вводить ток по 1 цифре, а как быть если нужно ввести 2 и более.
....

2. Я так понимаю первую цифру при нажатии кнопки + он заносит в память, а дальше все тупик для меня(
у меня получается нажимаю цифру 5 потом нажимаю + и он мне складывает 5+5 пишет 10(хорошо хоть правильно получилось сложить )
А как сделать, чтоб при нажатии + он складывал то, что в памяти с той цифрой которую я ввел после нажатия +.

Спасибо.

Последний раз редактировалось HORRIBLE, 13-12-2007 в 17:03.


Отправлено: 16:46, 13-12-2007 | #867


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Простой(?) пример калькулятора:

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

Global $aButtons_Arr[11]
Global $aOperations_Arr[1]

$Left = 60
$Top = 140

$Gui = GuiCreate("Calculator - Demo", 240, 290)

$CTRL_Edit = GUICtrlCreateEdit(0, 8, 2, 220, 23, BitOR($ES_READONLY, $ES_RIGHT), $WS_EX_STATICEDGE)

GUICtrlCreateGroup("Operations", 10, 25, 220, 90)

$Plus_Button = GUICtrlCreateButton("+", 20, 40, 25, 20)
$Minus_Button = GUICtrlCreateButton("-", 50, 40, 25, 20)
$Devide_Button = GUICtrlCreateButton("/", 80, 40, 25, 20)
$Multiply_Button = GUICtrlCreateButton("*", 110, 40, 25, 20)

GuiCtrlCreateSeperator(1, 142, 40, 3, 20)

$Pi_Button = GUICtrlCreateButton("Pi", 150, 40, 30, 20)
$Sqrt_Button = GUICtrlCreateButton("Sqrt", 190, 40, 30, 20)

GuiCtrlCreateSeperator(0, 18, 70, 3, 205)

$Equel_Button = GUICtrlCreateButton("=", 20, 80, 60, 25)
$CE_Button = GUICtrlCreateButton("CE", 150, 80, 70, 25)

GUICtrlCreateGroup("Digits", 10, 125, 220, 150)

For $i = 1 To 9
    If $Left >= 180 Then
        $Left = 60
        $Top += 32
    EndIf

    $aButtons_Arr[$i] = GUICtrlCreateButton($i, $Left, $Top, 36, 29)
    $Left += 40
Next

;Забыл нолик :D
$aButtons_Arr[10] = GUICtrlCreateButton("0", 60, 240, 115, 29)

GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case -3
            Exit
        Case $aButtons_Arr[1] To $aButtons_Arr[10]
            Local $iUbound = UBound($aOperations_Arr)

            If $iUbound > 1 And StringIsDigit($aOperations_Arr[$iUbound-1]) Then
                $aOperations_Arr[$iUbound-1] &= GUICtrlRead($nMsg, 1)
                $iUbound -= 1
            Else
                ReDim $aOperations_Arr[$iUbound+1]
                $aOperations_Arr[$iUbound] = GUICtrlRead($nMsg, 1)
            EndIf

            GUICtrlSetData($CTRL_Edit, $aOperations_Arr[$iUbound])
        Case $Plus_Button To $Multiply_Button
            Local $iUbound = UBound($aOperations_Arr)

            If $iUbound <= 1 Or $aOperations_Arr[$iUbound-1] = GUICtrlRead($nMsg, 1) Then ContinueLoop

            ReDim $aOperations_Arr[$iUbound+1]
            $aOperations_Arr[$iUbound] = GUICtrlRead($nMsg, 1)
        Case $Equel_Button
            Local $Operations_Str = ""

            For $i = 1 To UBound($aOperations_Arr)-1
                $Operations_Str &= $aOperations_Arr[$i]
            Next

            ClearOperations()

            $sResults = Execute($Operations_Str)
            If $sResults = "" Then $sResults = 0

            GUICtrlSetData($CTRL_Edit, $sResults)
        Case $Pi_Button
            ClearOperations()
            GUICtrlSetData($CTRL_Edit, Pi_Calculate())
        Case $Sqrt_Button
            Local $ReadEdit = GUICtrlRead($CTRL_Edit)
            If $ReadEdit <= 0 Then ContinueLoop

            ClearOperations()
            GUICtrlSetData($CTRL_Edit, Sqrt($ReadEdit))
        Case $CE_Button
            ClearOperations()
            GUICtrlSetData($CTRL_Edit, "0")
    EndSwitch
WEnd

Func ClearOperations()
    $aOperations_Arr = ""
    Dim $aOperations_Arr[1]
EndFunc

Func Pi_Calculate($iRound = 100000)
    Local $n = 0
    For $i = 1 To $iRound
        $n += 1 / ($i * $i)
    Next
    Return Sqrt($n * 6)
EndFunc

Func GuiCtrlCreateSeperator($Direction, $Left, $Top, $Width=3, $Lenght=25)
    Switch $Direction
        Case 0
            GUICtrlCreateLabel("", $Left, $Top, $Lenght, $Width, $SS_SUNKEN)
        Case 1
            GUICtrlCreateLabel("", $Left, $Top, $Width, $Lenght, $SS_SUNKEN)
    EndSwitch
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


Последний раз редактировалось Creat0R, 13-12-2007 в 19:01. Причина: Забыл нолик нарисовать :D

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

Отправлено: 18:34, 13-12-2007 | #868


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

Ветеран


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

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


Creat0R
Цитата:
AutoIt Menu для Opera
Не могу скачать, перезалей куда-нибудь.

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


Отправлено: 08:14, 14-12-2007 | #869


Аватара для TERMINAL

Ветеран


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

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


SergeyAV, уж если хочешь разобраться с AutoIt, тогда советую написать скрипт к DivX 6.7+keygen ! Вот когда напишешь, будешь больше знать чем сейчас (если ты новичёк). Только условие-при региистрации не вводить ключ к с AutoIt, а бери его с кеуgena...

Другой вариант-я лично учился на примерах от Sanya Alone, от его примеров подчёркивал самое важное...

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


Отправлено: 09:26, 14-12-2007 | #870



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




 
Переход