[архив - Часть 2] AutoIt скрипты

Ответить
 • Просмотры: 21
Аватара пользователя
Creat0R

Re: [архив - Часть 2] AutoIt скрипты

Сообщение Creat0R »

Цитата TERMINAL:



SergeyAV, уж если хочешь разобраться с AutoIt, тогда советую написать скрипт к DivX 6.7+keygen !
[архив - Часть 2] AutoIt скрипты




Зачем? Я не использую DivX (для кодирования), предпочитаю смотреть "чистое, неиспорченное видео". А для редкого просмотра на компе и декодера хватает - он то уж регистрируется куда как проще Изображение.

А применительно к топику (AutoIt) есть куда больше животрепещущих вопросов...
Аватара пользователя
TERMINAL

Re: [архив - Часть 2] AutoIt скрипты

Сообщение TERMINAL »

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

Re: [архив - Часть 2] AutoIt скрипты

Сообщение Creat0R »

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 небольшая прога, могу потестить (чтобы усовершенствовать скрипт), всё ровно скоро систему нужно переустанавливать Изображение
Аватара пользователя
TERMINAL

Re: [архив - Часть 2] AutoIt скрипты

Сообщение TERMINAL »

Цитата Kenwood3D:



Подскажите как в "Подключение по локальной сети - свойства" -> Настроить -> "Свойства: " выбрать закладку "Дополнительно" и там выбрать свойство "Сетевой адрес"? А то видемо из-за закладок не могу определить ClassNameNN списка.
[архив - Часть 2] AutoIt скрипты




Creat0R

Почему то твой способ ни на одной закладке на работает.



Код:

Код: Выделить всё

Пример:
#include 
Run ("rundll32 shell32,Control_RunDLL main.cpl @0")
$ConnPropTitle = 'Свойства: Мышь'
$TabText = "Параметры указателя"
WinWait($ConnPropTitle)
$iIndex = _ControlTab($ConnPropTitle, "", "FindTab", $TabText, "", True)
_ControlTab($ConnPropTitle, "", "TabSelect", $iIndex)

Все верно? Не работает
Аватара пользователя
Creat0R

Re: [архив - Часть 2] AutoIt скрипты

Сообщение Creat0R »

TERMINAL,
Цитата:



где здесь прописовать какие копировать папки и куда



В скрипте с примером (Copy With Progress Example.au3)... первый параметр путь к папке которую нужно скопировать, второй параметр путь назначения (куда помещать скопированные файлы), третьи указывает метод замены (0 - не заменять существующие файлы, 1 - заменять).



Всё довольно просто Изображение.
Аватара пользователя
SergeyAV

Re: [архив - Часть 2] AutoIt скрипты

Сообщение SergeyAV »

TERMINAL,
Цитата:



нужно чтобы после сообщения галочка изчезала в Checkbox1



Мне просто интересно, что это:





Код:

Код: Выделить всё

GUICtrlSetState(@SW_SHOW, $GUI_UNCHECKED)

?

Изображение



Выдели слово GUICtrlSetState (или просто поставь на нём курсор), и нажми F1 - увидишь справку для этой команды Изображение.





Код:

Код: Выделить всё

GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)

Там должен быть ID контроля а не @SW_SHOW.



Kenwood3D,
Цитата:



Почему то твой способ ни на одной закладке на работает



Странно, у меня вылетает ошибка о запуске Rundll32 (только с этим диалогом)... ошибка явно в строке:





Код:

Код: Выделить всё

DllCall("user32.dll", "long", "SendMessage", "hwnd", $hTab, "int", $TCM_GETITEM, "int", $sParam1, "int", $pItem)

(это при получении текста вкладки)



Вот так вроде работает:





Код:

Код: Выделить всё

Run ("rundll32 shell32,Control_RunDLL main.cpl @0")
$ConnPropTitle = 'Свойства: Мышь'
WinWait($ConnPropTitle)
_ControlTab($ConnPropTitle, "", "TabSelect", 2)

Но понимаю что это не выход, у тебя это может быть и не третья вкладка слева...
Аватара пользователя
HORRIBLE

Re: [архив - Часть 2] AutoIt скрипты

Сообщение HORRIBLE »

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

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(хорошо хоть правильно получилось сложитьИзображение )

А как сделать, чтоб при нажатии + он складывал то, что в памяти с той цифрой которую я ввел после нажатия +.



Спасибо.
Аватара пользователя
Creat0R

Re: [архив - Часть 2] AutoIt скрипты

Сообщение Creat0R »

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
Аватара пользователя
Maza Faka

Re: [архив - Часть 2] AutoIt скрипты

Сообщение Maza Faka »

Creat0R


Цитата:



AutoIt Menu для Opera



Не могу скачать, перезалей куда-нибудь.
Аватара пользователя
TERMINAL

Re: [архив - Часть 2] AutoIt скрипты

Сообщение TERMINAL »

Creat0R,


Цитата Creat0R:



Run ("rundll32 shell32,Control_RunDLL main.cpl @0")

$ConnPropTitle = 'Свойства: Мышь'

WinWait($ConnPropTitle)

_ControlTab($ConnPropTitle, "", "TabSelect", 2)
[архив - Часть 2] AutoIt скрипты




У меня проблем с запуском Rundll32 нет, а на счет готовой цифры, я так уже и сделал. Просто дело в том, что я хотел применить этот способ еще и в другом месте, где количество закладок может изменяться от определенных факторов, а вот название остается тоже. Вот только даже команда "GetItemText" почемуто не хочет возвращать текст. Ну да ладно... Все равно спасибо.



Если можно, подсажите решение первой проблемы
[архив - Часть 2] AutoIt скрипты


И еще! Изображение Как проверить наличие или отсутсвие флага
Ответить

Вернуться в «AutoIt»