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

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

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


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


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

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


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



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


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

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

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


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

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

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

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

 

Аватара для Котяра

Ветеран


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

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


Может глупый вопрос, но... нашел тут на форуме такой AutoIt-скрипт создания удаленного соединения:
Код: Выделить весь код
Run("rundll32.exe netshell.dll,StartNCW")
WinWaitActive ('Мастер новых подключений','Мастер новых подключений')
Send('{Enter}')
Sleep ('500')
WinWaitActive ('Мастер новых подключений','Подключить к Интернету для просмотра веб-узлов и чтения  электронной почты.')
ControlClick ('Мастер новых подключений','Подключить к Интернету для просмотра веб-узлов и чтения  электронной почты.','Button1')
Sleep ('500')
Send('{Enter}')

WinWaitActive ('Мастер новых подключений','Каким образом подключиться к Интернету')
ControlClick ('Мастер новых подключений','Каким образом подключиться к Интернету','Button2')
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Данное подключение использует модем и обычную телефонную линию или телефонную линию ISDN.')
ControlClick ('Мастер новых подключений','Данное подключение использует модем и обычную телефонную линию или телефонную линию ISDN.','Button1')
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Им&я поставщика услуг')
ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'Peterstar' )
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Номер &телефона:')
ControlSetText ( 'Мастер новых подключений', '', 'Edit1', '3203370,,,' )
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','&Имя пользователя:')
sleep (100)
ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'Login')
sleep (100)
ControlSetText ( 'Мастер новых подключений', '', 'Edit2', 'Password')
Send('{tab}')
sleep (100)
ControlSetText ( 'Мастер новых подключений', '', 'Edit3', 'Password')
Sleep ('500')
ControlCommand ( 'Мастер новых подключений', '', 'Button13', 'Check', '' )
ControlCommand ( 'Мастер новых подключений', '', 'Button2', 'Check', '' )
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Завершение работы мастера новых подключений')
ControlCommand ( 'Мастер новых подключений', '', 'Button20', 'UnCheck', '' )
Send('{Enter}')
Exit
Можно ли чуть-чуть его усовершенствовать. Дело в том, что номер дозвона и имя соединения должны быть заданы как тут,а логин и пароль скрипт должен спросить у пользователя. Или это никак не сделать? Я имею ввиду, чтобы после запуска скрипт вывелось окно "Введите логин и пароль" с этими полями. А все остальное как тут.

Отправлено: 20:59, 19-02-2008 | #151



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

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


Аватара для Котяра

Ветеран


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

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


Все! Нашел! Надо добавить в самый верх скрипта:
Код: Выделить весь код
$login= InputBox("Установка Интернета", "Введите логин Интернета:", "", "")
А потом в скрипте убрать 'Login', а вместо него написать $login
С паролем все по аналогии.

Не понял одно, как сделать, чтобы при нажатии Cancel работа скрипт завершалась, а не переходила как по OK к следующему окну.

Отправлено: 21:23, 19-02-2008 | #152


Аватара для Котяра

Ветеран


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

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


Сделал проверку данных примерно так:
Код: Выделить весь код
if $name = '' Then	Exit
Но как перед выходом вывести окно типа "Установка Интернета не удалась."?

Отправлено: 21:57, 19-02-2008 | #153


Аватара для Creat0R

Must AutoIt


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

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


Котяра,
Цитата:
Надо добавить в самый верх скрипта:
Можно и так, а можно создать сразу окошко с двумя полями ввода..

Код: Выделить весь код
_Input_LoginPass_Dialog()
If @error Then Exit

;Тут основное содержание скрипта

Func _Input_LoginPass_Dialog()
    #include <GuiConstants.au3>
    Local $GUI = GUICreate("Ввод данных", 300, 200)

    GUICtrlCreateLabel("Ввод логина:", 20, 30)
    Local $Login_Input = GUICtrlCreateInput("", 20, 50, 260, 20)

    GUICtrlCreateLabel("Ввод пароля:", 20, 90)
    Local $Password_Input = GUICtrlCreateInput("", 20, 110, 260, 20)

    Local $OK_Button = GUICtrlCreateButton("OK", 20, 160, 60, 20)
    Local $Cancel_Button = GUICtrlCreateButton("Отмена", 100, 160, 60, 20)

    GUISetState(@SW_SHOW, $GUI)

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE, $Cancel_Button
                GUIDelete($GUI)
                Return SetError(1, 0, 0)
            Case $OK_Button
                Local $aRet[2] = [GUICtrlRead($Login_Input), GUICtrlRead($Password_Input)]

                If $aRet[0] = "" Then
                    MsgBox(48, "Внимание!", "Введите пожалуйста логин.")
                    ControlFocus($GUI, "", $Login_Input)
                    ContinueLoop
                EndIf

                If $aRet[1] = "" Then
                    MsgBox(48, "Внимание!", "Введите пожалуйста пароль.")
                    ControlFocus($GUI, "", $Password_Input)
                    ContinueLoop
                EndIf

                GUIDelete($GUI)

                Return $aRet
        EndSwitch
    WEnd
EndFunc
Цитата:
как сделать, чтобы при нажатии Cancel работа скрипт завершалась
Нужно проверять @error:

Код: Выделить весь код
$login= InputBox("Установка Интернета", "Введите логин Интернета:", "", "")
If @error = 1 Then Exit
Цитата:
Но как перед выходом вывести окно типа "Установка Интернета не удалась."?
Код: Выделить весь код
$login = InputBox("Установка Интернета", "Введите логин Интернета:", "", "")

If @error = 1 Or $login = "" Then
    MsgBox(48, "Внимание!", "Установка Интернета не удалась." & @LF & @LF & "OK   ---->    EXIT")
    Exit
EndIf

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

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

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:11, 19-02-2008 | #154


Аватара для Котяра

Ветеран


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

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


Creat0R, спасибо за ответ.
Теперь я делаю так, чтобы спрашивались 4 параметра: имя подключения, номер, логин, пароль. Цель: создать программу, которая помогала бы "чайникам" настроить подключение к Интернету

Отправлено: 00:34, 20-02-2008 | #155


Аватара для Creat0R

Must AutoIt


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

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


Котяра,
Цитата:
Теперь я делаю так, чтобы спрашивались 4 параметра: имя подключения, номер, логин, пароль.
Получилось?

На всякий случай:

Код: Выделить весь код
$aInputs = _Input_LoginPass_Dialog()
If @error Then Exit

$ConnectionName     = $aInputs[0]
$Number             = $aInputs[1]
$Login              = $aInputs[2]
$Password           = $aInputs[3]

MsgBox(64, "Результаты:", _
    StringFormat("Имя подключения: %s \nНомер: %s \n\nЛогин: %s \nПароль: %s", _
    $aInputs[0], $aInputs[1], $aInputs[2], $aInputs[3]))

;Тут основное содержание скрипта

Func _Input_LoginPass_Dialog()
    #include <GuiConstants.au3>
    Local $GUI = GUICreate("Ввод данных", 300, 280)

    GUICtrlCreateLabel("Ввод имени подключения:", 20, 20)
    Local $ConnectionName_Input = GUICtrlCreateInput("", 20, 40, 260, 20)

    GUICtrlCreateLabel("Ввод номера (подключения?):", 20, 70)
    Local $Number_Input = GUICtrlCreateInput("", 20, 90, 260, 20)

    GUICtrlCreateLabel("Ввод логина:", 20, 120)
    Local $Login_Input = GUICtrlCreateInput("", 20, 140, 260, 20)

    GUICtrlCreateLabel("Ввод пароля:", 20, 170)
    Local $Password_Input = GUICtrlCreateInput("", 20, 190, 260, 20, $ES_LEFT+$ES_AUTOHSCROLL+$ES_PASSWORD)

    Local $OK_Button = GUICtrlCreateButton("OK", 20, 240, 60, 20)
    Local $Cancel_Button = GUICtrlCreateButton("Отмена", 100, 240, 60, 20)

    GUISetState(@SW_SHOW, $GUI)

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE, $Cancel_Button
                GUIDelete($GUI)
                Return SetError(1, 0, 0)
            Case $OK_Button
                Local $aRet[4]

                $aRet[0] = GUICtrlRead($ConnectionName_Input)
                $aRet[1] = GUICtrlRead($Number_Input)
                $aRet[2] = GUICtrlRead($Login_Input)
                $aRet[3] = GUICtrlRead($Password_Input)

                If $aRet[0] = "" Then
                    MsgBox(48, "Внимание!", "Введите пожалуйста имя подключения.")
                    ControlFocus($GUI, "", $ConnectionName_Input)
                    ContinueLoop
                EndIf

                If $aRet[1] = "" Then
                    MsgBox(48, "Внимание!", "Введите пожалуйста номер (подключения?).")
                    ControlFocus($GUI, "", $Number_Input)
                    ContinueLoop
                EndIf

                If $aRet[2] = "" Then
                    MsgBox(48, "Внимание!", "Введите пожалуйста логин.")
                    ControlFocus($GUI, "", $Login_Input)
                    ContinueLoop
                EndIf

                If $aRet[3] = "" Then
                    MsgBox(48, "Внимание!", "Введите пожалуйста пароль.")
                    ControlFocus($GUI, "", $Password_Input)
                    ContinueLoop
                EndIf

                GUIDelete($GUI)

                Return $aRet
        EndSwitch
    WEnd
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


Отправлено: 00:55, 20-02-2008 | #156


Аватара для Creat0R

Must AutoIt


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

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


Известно что у функции FileSetTime есть баг (довольно критичный в моём случае).

Установленные секунды округляются до чётного числа:

Код: Выделить весь код
$File = @TempDir & "\Test.txt"

$hOpenFile = FileOpen($File, 2)
FileWrite($hOpenFile, "Test")
FileClose($hOpenFile)

$SetTime = 20060322083529 ; - 2

FileSetTime($File, $SetTime)

$GetTime = FileGetTime($File, 0, 1)

MsgBox(0, "", StringFormat("Set Time: %s \nGet Time: %s", $SetTime, $GetTime))

FileDelete($File)
Мне нужно установить время какими нибудь другими средствами (API?), более точными, но не используя внешние утилиты (типа Nircmd).

Это возможно реализовать? нет возможности ждать пока исправят это дело в AutoIt (на бету переходить не могу по техническим причинам ).

P.S
А на счёт печяти никто так и не знает решения? amel27, не подскажешь?

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

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

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


Отправлено: 08:18, 20-02-2008 | #157


Аватара для Котяра

Ветеран


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

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


Creat0R, у меня получается. Вообще, AutoIt, классная штука
Можно даже программы писать. Например, деинсталлятор:
Код: Выделить весь код
$proceeduninstall = MsgBox(4148, "Внимание!", "Сейчас программа будет удалена. Хотите продолжить?")
if $proceeduninstall = '7' Then Exit
FileDelete(@ScriptDir & "\example.txt")
Правильно я понял, как деинсталлятор делать?

тут удаляется один файл example.txt
Uninstall.exe (скомпиленный скрипт) кладете в папку программу

Отправлено: 20:19, 20-02-2008 | #158


Аватара для Creat0R

Must AutoIt


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

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


Котяра,
Цитата:
Правильно я понял, как деинсталлятор делать?
Простой, да. Если делать более продвинуты, например, чтобы брал информацию об установленных приложении с системы, то нужно поработать ещё - Например вот неплохой деинсталлятор.

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

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

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

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


Отправлено: 21:32, 20-02-2008 | #159


Аватара для Creat0R

Must AutoIt


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

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



CaptureIt v1.0 - Эта утилита предназначена для захвата изображений с вашего экрана.


=================
Главные возможности:
=================

  • Захват всего экрана.
  • Захват отдельных окон или выбранных элементов окна.
  • Захват выбранной части экрана.
  • Сохранение захваченного изображения в тихом режиме.
  • Открытие захваченного изображения в графическом редакторе.
  • Вывод на печать захваченного изображения.
  • Помещение захваченного изображения в буфер обмена.
  • Закачка захваченного изображения (на imageshack.us).
  • Поддерживаемые форматы изображений:

    PNG
    GIF
    JPG - Качество настраивается.
    BMP - Формат настраивается.


Особое спасибо amel27 за функции _FileOpen/SaveDialog, и за решение с улавливанием событий мышки

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

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

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

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

Отправлено: 12:04, 21-02-2008 | #160



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ FOX RED Защита компьютерных систем 67 21-11-2007 15:05
[Архив - Часть 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




 
Переход