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

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

 

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

Ветеран


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

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


garbage
Цитата:
отследить окончание Program1
Смотри функцию
Код: Выделить весь код
ProcessWaitClose()
.

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

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

Отправлено: 11:07, 15-02-2008 | #141



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

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


Аватара для Creat0R

Must AutoIt


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

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


zero_1632,
Цитата:
MsgBox (4096,$iPID,StdoutRead ($iPID)) - ничего не выводит
Если приложение program.exe пишет в StdOut поток, то можно пробовать читать этот поток, но не одним вызовом, а из цикла...

Код: Выделить весь код
Run(@ComSpec & " /c echo I am an StdOut Stream Data", "", @SW_SHOW, 2 + 4)

$iPID = ProcessExists("Cmd.exe")

While 1
    $Read = StdoutRead($iPID)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $Read)
WEnd
Цитата:
Можно ли делать с помощью autoit скриншоты окна или его любой части?
Можно, в последней версии есть функции _ScreenCapture_Capture()/_ScreenCapture_CaptureWnd().


garbage
Кроме упомянутого ProcessWaitClose, если программа запускается из скрипта, то проще использовать RunWait()


SvetlanaK,
Цитата:
можно ли вытянуть данные из существующей базы, например из аксесс-а?
Для этого кажется есть отдельные UDF'ы.

Цитата:
Может у кого ссылки есть на статьи и литературу по использованию SQLite библиотеки
Только ссылка на оф. форум

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

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

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


Отправлено: 15:00, 15-02-2008 | #142


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


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

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


У меня проблема возникла. Вот мой код.
.......................................
$i=0
$y = 208
$stroka = 0
do
ClipPut("")
MouseClickDrag("left", 93, $y+$i, 385,$y+$i)
Send("^{c}")
$creater = StringLen(GUICtrlRead($Label_2))
$len = StringLen(ClipGet())

If $len <= 11 then
$Name = ClipGet()
else
$len_1 = $len - $creater
$Name = StringTrimRight(ClipGet(),$len_1)
$len_11 = StringLen($Name)
Endif
$login_2 = GUICtrlRead($Label_2)
$test = StringCompare ( $Name, $login_2,2)
If $test = 0 then
$stroka = $stroka + 1
else

$i =$i + 22
$y_2 = $y+$i
$stroka = $stroka + 1
endif
until $test= 0

MsgBox(0,"","найден в строке: " &$stroka,3)

$len_3 = 0

while $len_3 > $len_11

MouseClickDrag("left", 93, $y_2, 385,$y_2)
Send("^{c}")
$len_3 = StringLen(ClipGet())

Wend

У меня не работает все после while...... как мне достать из первого цикла: $y_2 и $len_11 .

Отправлено: 01:44, 17-02-2008 | #143


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата:
не работает все после while...... как мне достать из первого цикла: $y_2 и $len_11
Во первых, код нужно заключать в тег Code, а во-вторых, это больше на кашу похоже чем на код (без обиды).

Переменная $len_11 объявляется условно, поэтому есть шанс что она не будет создана в момент перехода ко второму циклу (и естественно будет ошибка). Тоже самое и с $y_2.

Что нужно достичь этим скриптом?

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

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

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

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

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


Аватара для Angelus

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


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

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


Хочу команду ControlGetText ( 'Настройка', '', 'Edit1' ) добавить в цикл, что бы не писать пятдесят с лишним строк.....можно ли как нибудь плюсовать Edit1, что бы получилось Edit2 и тд в этом цикле???

Последний раз редактировалось Angelus, 17-02-2008 в 11:32.


Отправлено: 10:17, 17-02-2008 | #145


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

Ветеран


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

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


Angelus,
Цитата Angelus:
можно ли как нибудь плюсовать Edit1, что бы получилось Edit2 »
Код: Выделить весь код
For $i = 1 To 50
    ControlGetText ('Настройка', '', 'Edit' & $i)
Next

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


Отправлено: 11:45, 17-02-2008 | #146


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


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

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


Creat0R,
Хы, ну критику ни кто не отменял... Учетем, спасибо..... А если бредово или через одно место ) написано, ну уж как умеем пока), как говориться как умею так и выкручиваюсь ).
Ты имел ввиду,что оформлять надо:

читать дальше »

PHP код: Выделить весь код

$i=0

$y 
208
$stroka 
0

Do

      
ClipPut("")
      
MouseClickDrag("left"93$y+$i385,$y+$i)
      
Send("^{c}")
      
$len StringLen(ClipGet())

            If 
$len <= 11 then
            $Name 
ClipGet()

            else
                    
$creater StringLen(GUICtrlRead($Label_2))
                    
$len_1 $len $creater
                    $Name 
StringTrimRight(ClipGet(),$len_1)
                    
$len_11 StringLen($Name)

            Endif

        
$login_2 GUICtrlRead($Label_2)
        
$test StringCompare $Name$login_2,2)

            If 
$test 0 then
                    $stroka 
$stroka 1

            
else
                    
$i =$i 22
                    $y_2 
$y+$i
                    $stroka 
$stroka 1

           
endif

Until $test0

MsgBox
(0,"","найден в строке: " &$stroka,3)

              
$len_3 0

              
while $len_3 $len_11
                     MouseClickDrag
("left"93$y_2385,$y_2)
                     
Send("^{c}")
                     
$len_3 StringLen(ClipGet())

            
Wend 


Эм, этим, я хотел получить такую вещь.....Да это все делается на интернет страничке... Есть список в который я заношу свое имя: $creater , далее после того как имя внесено, оно появляется на n-строчке, которую я определяю (сравнивая скопированную строчку, предварительно обрезав ее до 11 знаков, с $creater ).Это все делается в Do..... Until.
Нашел такую строчку, теперь работаю с ней, жду пока в этой строчке не появиться еще ченить, короче пока длинна не измениться...... Как только появилось, жму на кнопку.... Это должно делаться в while.....Wend
Примерно так.......


Цитата Creat0R:
Переменная $len_11 объявляется условно, поэтому есть шанс что она не будет создана в момент перехода ко второму циклу (и естественно будет ошибка). Тоже самое и с $y_2.
А как тогда быть?

У меня еще вопpосы:

1. Как отправить в сон неограниченный (или поставить его на паузу) при помощи: HotKeySet
2. Вот есть цикл, как ему сказать, что если он превысил n-е кол-во шагов и не нашел результатов, вернуться в начало и продолжить делать все по новой.
3. Можно ли сделать связь между 2-мя файлами автоита. Ну т.е. есть 2 файла. Первый высчитывает некий параметр, который необходим для работы второго файла, а запускаются эти 2-ва файлика из 3-го файла. Тут вопрос в удобстве, нехочется иметь один файл очень большой, в котором слишком много буков ), а хочется чтоб было 2 но в которых не так много написано.
4. Если уже открыта интернет страница и ее ну ни как закрывать нельзя, как применять команды связанные с управлением IE?
Спасибо!!!

Последний раз редактировалось HORRIBLE, 18-02-2008 в 00:20.


Отправлено: 21:50, 17-02-2008 | #147


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата:
критику ни кто не отменял
Это была не критика, а всего лишь совет..

Цитата:
А если бредово или через одно место ) написано, ну уж как умеем пока), как говориться как умею так и выкручиваюсь ).
А вот это неверный подход (тоже на уровне совета пишу ) - Если мне нужна помощь, я сделаю всё чтобы любому желающему мне помочь, не нужно было гадать и разгребать непонятный кусок кода, который является частью громадного скрипта. Я сделаю совершенно независемый пример, который максимально отразит суть моей проблемы, чтобы с этим примером было приятно и удобно работать желающему мне помочь.

Цитата:
Ты имел ввиду,что оформлять надо:
Примерно, так хотябы понятнее, уже есть больше желания присмотреться и попытаться найти суть проблемы .

Цитата:
Эм, этим, я хотел получить такую вещь.....Да это все делается на интернет страничке... Есть список в который я заношу свое имя: $creater , далее после того как имя внесено, оно появляется на n-строчке, которую я определяю (сравнивая скопированную строчку, предварительно обрезав ее до 11 знаков, с $creater ).Это все делается в Do..... Until.
Нашел такую строчку, теперь работаю с ней, жду пока в этой строчке не появиться еще ченить, короче пока длинна не измениться...... Как только появилось, жму на кнопку.... Это должно делаться в while.....Wend
Примерно так.......
Примерно не достаточно, я из вышеописанного так и не понял что требуется... что за список, где $Label_2, и т.п.

Цитата:
А как тогда быть?
Объявлять заранее переменные

Цитата:
Как отправить в сон неограниченный (или поставить его на паузу) при помощи: HotKeySet
Примерно так
Код: Выделить весь код
#include <GuiConstants.au3>

$Paused = False
HotKeySet("^p", "ToggleScriptPause")

$GUI = GUICreate("Test Script", 300, 200)

$PauseToggle_Button = GUICtrlCreateButton("test", 20, 40)

GUISetState(@SW_SHOW, $GUI)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $PauseToggle_Button
            MsgBox(0, "", "Just a test")
    EndSwitch
WEnd

Func ToggleScriptPause()
    $Paused = Not $Paused

    Local $iOpt_GOEM = Opt("GuiOnEventMode", 1)
    If $iOpt_GOEM = 1 Then Opt("GuiOnEventMode", 0)

    While $Paused
        Sleep(100)
    WEnd

    Opt("GuiOnEventMode", $iOpt_GOEM)
EndFunc


Цитата:
Вот есть цикл, как ему сказать, что если он превысил n-е кол-во шагов и не нашел результатов, вернуться в начало и продолжить делать все по новой.
Использовать счётчик, и сбрасывать его при достижении лимита.
Подробнее
Код: Выделить весь код
;Проверка результата
$Results_Val = 123

;Счётчик попыток
$Loop_Counter = 1

;Лимит попыток
$Loop_Limit_Atempts = 122

While 1
    If $Loop_Counter = $Results_Val Then ExitLoop ;Найден результат

    If $Loop_Counter > $Loop_Limit_Atempts Then

        ;Сбрасываем счётчик
        $Loop_Counter = 1

        ContinueLoop
    EndIf

    $Loop_Counter += 1

    Sleep(1)
WEnd


Цитата:
Можно ли сделать связь между 2-мя файлами автоита
Через #Include...

Код: Выделить весь код
If MsgBox(36, "Question", "Include second script?") = 6 Then
    #include <MySecondScript.au3>
EndIf
MySecondScript.au3:

Код: Выделить весь код
MsgBox(0, "", "Hi, i am a second script")

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

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

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:51, 18-02-2008 | #148


Аватара для Angelus

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


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

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


Maza Faka, я так пробЫвал...но он возвращает пустое значение....

Отправлено: 10:40, 18-02-2008 | #149


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата:
Если уже открыта интернет страница и ее ну ни как закрывать нельзя, как применять команды связанные с управлением IE?
Как понять “ни как закрывать нельзя”? эта страница открыта скриптом? вообще то в справке есть описания для функии _IE...

Angelus,
Цитата:
возвращает пустое значение
Значит неверный элемент.. можно попробовать использовать как CLASSNN...

Код: Выделить весь код
For $i = 1 To 50
      $Text = ControlGetText ('Настройка', '', '[CLASSNN:Edit' & $i & ']')
Next
Или просто CLASS.

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

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

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

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

Отправлено: 10:51, 18-02-2008 | #150



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




 
Переход