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

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

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

(*.*)


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


HORRIBLE,
Цитата:
а откуда берутся данные, что я нажал на кнопку деления
Простая запись имени контроля...

Код: Выделить весь код
$aOperations_Arr[$iUbound] = GUICtrlRead($nMsg, 1)
Тут где GUICtrlRead($nMsg, 1), используется дополнительный параметр (1), позволяющий считывать текст с элемента.
Просто в массив записываем этот текст, и когда делается подсчёт (Execute()), то соответствующая операция будет выполнена... да, если создать кнопку с другим именем, то подсчёт будет не корректный.

Kenwood3D
Цитата:
подсажите решение первой проблемы здесь
Оказывается в моей функции есть ошибка, а точнее неточность проверки ошибочности

Нужно в фунцию _ControlTab() добавить это перед Swith $sCommand...

Код: Выделить весь код
If Not IsHWnd($hWnd) Then $hWnd = WinGetHandle($hWnd)
If Not WinExists($hWnd) Then Return SetError(1, 0, "")
По поводу решения, вот это у меня работает:

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

$ConnPropTitle = 'Подключение по локальной сети'

_OpenConnProperties($ConnPropTitle)

WinWaitActive($ConnPropTitle)
ControlClick($ConnPropTitle, "", "Button1")

$PropTitle = "[REGEXPTITLE:Свойства:.*]"
WinWaitActive($PropTitle)

$Index = _ControlTab($PropTitle, "", "FindTab", "Дополн", 0, True)
_ControlTab($PropTitle, "", "TabSelect", $Index)

ControlCommand($PropTitle, "", "ListBox1", "SelectString", "Network Address")

Sleep(5000)

Func _OpenConnProperties($sConnName)
    Local $oShellApp = ObjCreate('shell.application')
    Local $oCP = $oShellApp.Namespace (3), $Item
    For $Item In $oCP.Items
        If $Item.name = 'Сетевые подключения' Then
            For $Item In $Item.Getfolder.Items
                If $Item.name = $sConnName Then $Item.InvokeVerb ('Сво&йства')
            Next
        EndIf
    Next
EndFunc
Цитата:
Как проверить наличие или отсутсвие флага
Код: Выделить весь код
If BitAND(GUICtrlRead($Ctrl), $GUI_CHECKED) Then
   ....
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

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

Отправлено: 04:58, 15-12-2007 | #881



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

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


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


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

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


Creat0R,
Цитата Creat0R:
Оказывается в моей функции есть ошибка, а точнее неточность проверки ошибочности
Нужно в фунцию _ControlTab() добавить это перед Swith $sCommand...
Код:
If Not IsHWnd($hWnd) Then $hWnd = WinGetHandle($hWnd)
If Not WinExists($hWnd) Then Return SetError(1, 0, "") »
Добавил. Не помогло. Также не работает по названиям закладок. Проверял на другом компе, тоже не хочет. Может чушь, а не может быть дело в стиях ХР?

Цитата Creat0R:
ControlCommand($PropTitle, "", "ListBox1", "SelectString", "Network Address") »
Работает! Спасибо! :D

Цитата Creat0R:
If BitAND(GUICtrlRead($Ctrl), $GUI_CHECKED) Then
....
EndIf »
А вот тут не понял куда что. У меня галочка называется Button2. И как связать?

Отправлено: 19:40, 15-12-2007 | #882


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


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

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


Вобщем, проверку наличия галочки выполнил, оказалось, простым способом
Код: Выделить весь код
ControlCommand("Заголовок окна", "", "Button2", "IsChecked")

Отправлено: 20:55, 15-12-2007 | #883


Аватара для Creat0R

Must AutoIt


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

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


Kenwood3D,
Цитата:
Не помогло
Обычный пример работет?

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

$GUI = GUICreate("ControlTab Demo")

GUICtrlCreateTab(0, 20)
$Tab_1 = GUICtrlCreateTabItem("Tab 1")
GUICtrlCreateLabel("Some Text", 10, 60)

$Tab_2 = GUICtrlCreateTabItem("Tab 2")
$Tab_3 = GUICtrlCreateTabItem("More Tab")

GUISetState()

For $i = 0 To _ControlTab($GUI, "", "GetTabsCount")-1
    MsgBox(0, "", "Zero-Based tab number [" & $i & "]: " & @LF & _ControlTab($GUI, "", "GetItemText", $i), 2)
    _ControlTab($GUI, "", "TabRight", 1)
Next
Цитата:
У меня галочка называется Button2
Я думал нужно проверить у аутоитовского GUI
Задача была не ясна.

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

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

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:54, 15-12-2007 | #884


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

Ветеран


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

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


Creat0R
Цитата:
Зеркало
Ссылка битая, залей на slil.ru

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


Отправлено: 07:19, 16-12-2007 | #885


Googler


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

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


Creat0R
Цитата Creat0R:
Прикрепляю первую версию самодельной функции для копирования папок вместе с их содержимым...
Две проблемы которые нужно решить:
1) Более точный подсчёт оставшегося до окончания копирования времени (мне кажтся у меня вообще неверный подсчёт, делал давно).
2) AVI-Анимация останавливается на время копирования большого файла - это можно было бы решить если создание всего GUI повесить на отдельный скрипт, но тогда будет висеть два процесса для одной задачи »
Думаю проблемы решаемы, но скрипт очень сырой и сначала нужно привести в порядок то что уже есть... к примеру файлы, вложенные в подкаталоги не копируются так как перед вызовом _FileCopyEx() нужно сначала создать структуру каталогов - CopyFileExA каталоги создавать не может... Функция _FileListToArrayEx() тоже работает странно - в такой ее реализации нет смысла в маске, так как она применяется к каталогам и тем самым отменяет поиск в подкаталогах, тут возможны варианты в зависимости от того что требуется от функции... Синхронизация копирования и обновления GUI тоже имхо слишком запутанна - одновременно применяются разные способы GUIGetMsg(), GUIGetCursorInfo(), GUIRegisterMsg() насколько это необходимо?... ну и по мелочам ... Кстати, замедление скрипта никак не связано с использованием CallBack, просто нет смысла обновлять GUI для каждого блока данных... имхо нужно либо ставить пропуски (по счетчику) либо обновлять ГУИ по таймеру.

Отправлено: 12:03, 16-12-2007 | #886


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата:
залей на slil.ru
Слил - Но скоро перезалью, нашёл пару битых ссылок (в меню форума), а также нужно добавить пару фич.

amel27,
Цитата:
файлы, вложенные в подкаталоги не копируются
Странно, у меня всё копируется.

Цитата:
CopyFileExA каталоги создавать не может
Поэтому у меня _FileCopyEx() создаёт их по запросу

Цитата:
она применяется к каталогам и тем самым отменяет поиск в подкаталогах
У меня функция возвращает подкаталоги и файлы в них, использовал именно эту функцию т.к хотел обойти необходимость в рекурсии.

Цитата:
насколько это необходимо?
Эти строчки можно убрать:

Код: Выделить весь код
$aCurInfo = GUIGetCursorInfo($hCopyProgrss_GUI)
If IsArray($aCurInfo) And $aCurInfo[2] = 1 And $aCurInfo[4] = $Cancel_Button Then ExitLoop
Это я забыл, они использовались раньше для определения отмены копирования.

Цитата:
нет смысла обновлять GUI для каждого блока данных
Он обновляется по необходимости, т.е файл копируется, и соответственно обновляются данные.

Мне интересно решить проблему с _GetTimeRemained(), я теперь уверен что моё “древнее” решение совсем неверно, подсчёт не должен происходить на основе количества копируемых файлов и определённом (зарание) уровне (для суммы файлов).

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

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

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


Отправлено: 17:16, 16-12-2007 | #887


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


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

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


Цитата Creat0R:
Обычный пример работет? »
Работает. Дело в том что у меня работают все команды ControlTab.au3, кроме тех, которые касаются текста - названия закладки. Т.е. не считывает название закладки и не переключает по названию, а остальные команды работают.

Отправлено: 00:14, 17-12-2007 | #888


Аватара для Creat0R

Must AutoIt


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

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


Kenwood3D,
Цитата:
кроме тех, которые касаются текста - названия закладки
Но в этом примере тоже задействована команда GetItemText, если она тут (с моим примером) работает, значит проблема где то в системе

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

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

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:03, 17-12-2007 | #889


Аватара для DImaN!

Ветеран


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

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


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

-------
It's only after we've lost everything that we're free to do anything... Блог


Отправлено: 16:58, 17-12-2007 | #890



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




 
Переход