Что нового

Нестабильная работа мыши и клавиатуры при многократном выполнении скриптов

Nickf

Новичок
Добрый день!
Помогите пожалуйста советом.
Несколько дней уже изучаю autoit и написал несколько скриптов. Некоторые небольшие скрипты при многократном запуске по горячей клавише, например 10 раз подряд приводят к нестабильной работе мыши и клавиатуры. Перестает нормально выделяться текст (выделяется большими кусками) , прокрутка колесика вызывает изменение масштаба, курсор невозможно поставить в поле ввода и т.п. Помогает только снятие процессов через диспетчер задач (эти процессы висят хотя скрипт выполнение конкретной программы по горячей клавише закончено).

Это вообще характерно для autoit? Или надо искать ошибки в коде?

Код всегда очень простой....
Вот прмер:
Код:
Func show()
  Send("^0")
; Открыть источник
   MouseClick("left", 20, 118, 1, 0)
   Sleep(100)
; Скопировать содержимое вкладки Источник
   Send('^a')
   Sleep(50)
   Send('^c')
   Sleep(50)
; Поместить буфер обмена в строковую переменную
   dim $sInput=ClipGet()
   Sleep(100)
   $sInput=StringRegExpReplace($sInput, 'https?://[^/]*/media/','/media/');
   Sleep(100)
   $sInput=StringRegExpReplace($sInput, '.crop_144x144.jpg','');
   Sleep(100)
   $sInput=StringRegExpReplace($sInput, 'width="144" height="144"','width="31%"');
   Sleep(100)
   $sInput=StringRegExpReplace($sInput, '>&nbsp;\s?\s?<','><');
   Sleep(100)
   $sInput=StringRegExpReplace($sInput, '>\s?\s?<','><');
   Sleep(100)
   If StringRegExp ($sInput, 'margin')==0 Then
   $sInput=StringRegExpReplace($sInput, '<img','<img  style="margin:1px 3px;" ');
EndIf
 
Автор
N

Nickf

Новичок
Потому что прокрутка с зажатым Ctrl изменяет масштаб в браузере. Ваш скрипт не отпустил Ctrl. Ну и какие-то ещё кнопки помимо этой.
А точно было ощущение, что нажаты какие-то клавиши. Спасибо.
А что надо чтобы отпустил, добавлять время в sleep-ы или есть еще какие-то средства?
 

Sufferer

Новичок
А точно было ощущение, что нажаты какие-то клавиши. Спасибо.
А что надо чтобы отпустил, добавлять время в sleep-ы или есть еще какие-то средства?
Заглянул я в FAQ на официальном сайте, и там предлагается следующая команда для освобождения виртуально застрявших клавиш Ctrl, Alt и Shift
Код:
ControlSend("", "", "", "text", 0)
 
Автор
N

Nickf

Новичок
Огромное спасибо! Вечером буду проверять.
 
Верх