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

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

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

(*.*)


Сообщения: 36560
Благодарности: 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

 

Аватара для morgan1991

Старожил


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

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


спс Creat0R, только не могу понять чё это такое?:
Код: Выделить весь код
   $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    If Number($IPPort) = 0 then $IPPort = 25
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
зачем эти ссылки? Захожу по ним а они не рабочие, точнее там пишет типо 404, а код без них не пашет

-------
Хочу научиться писать драйвера на с++


Последний раз редактировалось morgan1991, 29-10-2008 в 09:56.


Отправлено: 22:57, 28-10-2008 | #1021



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

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


Аватара для semiono

Ветеран


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

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


Подскажите пжлст, что лучше или в каком случае лучше
winwaitactive("Alcohol","Welcome to the Alcohol") vs winwaitactive("[TITLE:Alcohol; Class:#32770]")

controlclick("Alcohol", "License Agreement", "I &Agree", "left", 1) vs controlclick("Alcohol", "License Agreement", "[Class:Button; Instance:2]", "left", 1)

я так думаю, что буквы хуже из-за кодировок и т.п. однако Title всёравно не напишешь цыфрами, дык тогда уж лучше всё так и вбивать как видно... всёравно приложение всегда конкретное и ситуация всегда предвидима, после многократных тестов проверки... ??

Меня более всего не устраивает сама путаница методов, зачем их так много? И как-то не систематизированно, сколько хелп читаю, всёравно только методом тыка познаётся.

-------
Полезное сообщение


Отправлено: 23:36, 28-10-2008 | #1022


Аватара для Creat0R

Must AutoIt


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

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


morgan1991,
Цитата morgan1991:
зачем эти ссылки? »
Это вроде как константы, судя по рассуждениям тут, на самом деле обращения на сервер MS не происходит (хотя видимо это зависит от тех же настроек).

semiono,
Цитата semiono:
что лучше или в каком случае лучше
Если для себя, то обычное распознавание по заголовкам и тексту вполне подходит. Если нужно надёжно, тогда лучше по классу + заголовок + текст.

Цитата semiono:
не устраивает сама путаница методов, зачем их так много? »
А это со временнем их так набралось , классы и т.п. не всегда были доступны (в аутоите). Старые методы оставлены в целях обратной совместимости.

Цитата semiono:
сколько хелп читаю, всёравно только методом тыка познаётся »
Ну, оно так почти всегда, справка помагает, подталкивая на нужное направление

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

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

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:20, 29-10-2008 | #1023


Аватара для semiono

Ветеран


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

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


Путаница я имел ввиду в том, что если
winwaitactive("[TITLE:Alcohol; Class:#32770]") достаточно лишь [Title + Class] юзать,
то в controlclick нужен титл разделённый обычным текстом и потом уже класс...
то есть я хотел сначала перейти на полное использование только классов, но ведь так нельзя:

controlclick("[TITLE:Alcohol; Class:#32770]", "????", "[Class:Button; Instance:2]", "left", 1)

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

Если делать не для себя, то возможные проблеммы когда откроется какоенибудь посторонее окно
и Enter улетит в него, однако тут как по тексту, так и по классам всегда можно ошибиться,
так как они повторяются в разных приложениях... ?

-------
Полезное сообщение


Отправлено: 01:27, 29-10-2008 | #1024


Аватара для Creat0R

Must AutoIt


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

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


semiono,
Цитата semiono:
в controlclick нужен титл разделённый текстом и потом уже класс »
Там не обязательно ставить текст

Цитата semiono:
Если делать не для себя, то возможные проблеммы когда откроется какоенибудь посторонее окно
и Enter улетит в него »
Я лично не долюбливаю функции Send и т.п. (хотя иногда без них никак), вместо бросания Enter'а в окно, лучше узнать класс контроля и нажать по нём, или в крайнем случае активировать окно (и дождаться его активности) перед посыланием.

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

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

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

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

Отправлено: 01:36, 29-10-2008 | #1025


Googler


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

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


Creat0R
Цитата:
Вот так »
Супер!.. я бы на такой код не решился ...к примеру, в Си он является грубой ошибкой - компилятор не обязан соблюдать последовательность выполнения равноправных операндов - т.е. FileExists() вполне может выполниться перед DriveStatus(), поэтому мой вариант был бы другой (ниже)... Но скрипты выполняются "как написано" (всегда ли?) и это позволяет упростить некоторые проверки (контроль @error, IsArray(), etc.)
Код: Выделить весь код
While 1
    $Next = (DriveStatus("A:")=="READY")
    If $Next Then $Next = FileExists('A:\gk.db3')
    If $Next Then ExitLoop

    If MsgBox (36, 'Предупреждение', 'Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод,' & _
        @CRLF& ' дискету пользователя, в противном случае работа не будет продолжена.' & _
        @CRLF& 'Вы хотите продолжать работу?') = 7 Then Exit
    Sleep(100)
WEnd

MsgBox(48, "Информация", "Запущена установка программы!")
Цитата:
Старые методы оставлены в целях обратной совместимости. »
не, скорей в целях прямой обучаемости

Последний раз редактировалось amel27, 29-10-2008 в 11:24. Причина: правка скрипта

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

Отправлено: 06:16, 29-10-2008 | #1026


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


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

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


Цитата amel27:
Супер!.. я бы на такой код не решился ...к примеру, в Си он является грубой ошибкой - компилятор не обязан соблюдать последовательность выполнения равноправных операндов - т.е. FileExists() вполне может выполниться перед DriveStatus(), поэтому мой вариант был бы другой (ниже)... Но скрипты выполняются "как написано" (всегда ли?) и это позволяет упростить некоторые проверки (контроль @error, IsArray(), etc.)
Код: Выделить весь код
$Next = False
While 1
 If DriveStatus("A:")=="READY" Then $Next = True
 If $Next Then $Next = FileExists('A:\gk.db3')
 If $Next Then ExitLoop
If MsgBox (36, 'Предупреждение', 'Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод,' & _
 @CRLF& ' дискету пользователя, в противном случае работа не будет продолжена.' & _
 @CRLF& 'Вы хотите продолжать работу?') = 7 Then Exit
 Sleep(100)
WEnd
MsgBox(48, "Информация", "Запущена установка программы!")
»
Хм... я вот не программер, я только учусь.. Тут все, конечно, круто, но вот только я не понимаю смысл этих операций с переменной $next, не в том смысле, что я могу проще, а в том смысле, что "не мог бы ты объяснить?"... При чем, учитывая мою слабую компетентность в этом вопросе, при объяснении прошу использовать стиль "a la" для детсадовца... Не хочется просто использовать данный кусок кода - хочется его понять, для начала.

-------
ira furor brevis est


Отправлено: 10:27, 29-10-2008 | #1027


Googler


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

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


Цитата Grammaton Cleric:
"не мог бы ты объяснить?" »
без проблем - у меня лобовой вариант привел к дублированию кода (MsgBox):
Код: Выделить весь код
While 1
    If DriveStatus("A:")=="READY" Then
        If FileExists('A:\gk.db3') Then
            ExitLoop
        Else
            If MsgBox (36, 'Предупреждение','Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, '&@CRLF& _
                                            'дискету пользователя, в противном случае работа не будет продолжена.'&@CRLF& _
                                            'Вы хотите продолжать работу?') = 7 Then Exit
        EndIf
    Else
        If MsgBox (36, 'Предупреждение','Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, '&@CRLF& _
                                        'дискету пользователя, в противном случае работа не будет продолжена.'&@CRLF& _
                                        'Вы хотите продолжать работу?') = 7 Then Exit
    EndIf
    Sleep(100)
WEnd

MsgBox(48, "Информация", "Запущена установка программы!")
поэтому я ввел некий флаг $Next, который изначально равен FALSE (aka "красный свет", TRUE - "зеленый"),
далее (с учетом изменений):

- если вставлен диск, то DriveStatus() дает "зеленый", иначе - "красный";
- FileExists() может изменить цвет на "красный", но только с "зеленого" (иначе будет ошибка);
- если после всех проверок "зеленый", то скрипт выходит из цикла и продолжает работу;
- если "красный", то попадаем на предупреждение и далее либо выход из скрипта, либо по циклу до "зеленого"
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:23, 29-10-2008 | #1028


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата amel27:
FileExists() вполне может выполниться перед DriveStatus() »
Если первое услове истина (True), то второму нет смысла выполняться, т.к условия разделены оператором Or. Также и с оператором "и", если есть два условия через And, и первое не является истиной, то второе не будет выполняться, оно выполняется только если первое условие это True.
Иногда это помагает, а иногда как раз наоборот.

Цитата amel27:
мой вариант был бы другой (ниже) »
Тем то AutoIt мне и нравится, что в нём можно сделать всё предельно просто, но точно также как и сложно

Цитата amel27:
лобовой вариант привел к дублированию кода (MsgBox) »
Не обязательно:

Код: Выделить весь код
While 1
    If DriveStatus("A:") <> "READY" Then
        If MsgBox (36, 'Предупреждение', _
            'Автоустановка программы, Перед продолжением установки ТРЕБУЕТСЯ вставить в Floppy дисковод, ' & @CRLF & _
            'дискету пользователя, в противном случае работа не будет продолжена.' & @CRLF & _
            'Вы хотите продолжать работу?') = 7 Then Exit

        ContinueLoop
    EndIf

    If FileExists('A:\gk.db3') Then ExitLoop
WEnd

MsgBox(48, "Информация", "Запущена установка программы!")
Или это не лобовой?

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

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

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:43, 29-10-2008 | #1029


Аватара для semiono

Ветеран


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

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


>Пожалуйста помогите с кодом?
>Надо проверить установлен ли SPTD драйвер и если нет перезагрузить Windows XP.
>Я думаю проверку драйвера можно осуществить проверкой существования файла:
>"%SystemRoot%\system32\drivers\sptd.sys"
>Или есть лучше вариант? (SPTD - это драйвер с которым обычно работает Alcohol)
>Перезагрузку можно выполнить так Run($WinDir"\system32\shutdown.exe", "-f -r -t 00") если я не ошибаюсь?
>Помогите целым куском кода, чтоб сразу вставить в скрипт? Иначе я запутаюсь в IF - логических консрукциях :\
>Ещё возможна трабла, так как я всётаки хочу это установить во время инсталяции windows на t13, может быть тут какие-то ещё есть сложности? Я >вообще-то не уверен перезагрузится ли windows в этой ситуации.
>Но полюбому, хотя бы так нужен скрипт, хотябы обычно юзать.

Ай-ай, я уже сам написал, примерчек:
Код: Выделить весь код
If FileExists("C:\autoexec.bat") Then
Run("Calc.exe")
Else    
Shutdown(6)
EndIf
Только как это грамотно сделать, чтоб Then переходил в основной код, ссылку чтоли тут надо? Как это делают? GoTo чтоль...
Или просто тупо вставить весь код программы между: Then ... Else? Вроде это не по-програмиссткски!

Последний раз редактировалось semiono, 29-10-2008 в 14:35.


Отправлено: 13:58, 29-10-2008 | #1030



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




 
Переход