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

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

 

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


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

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


Цитата Maza Faka:
Попробуй задать путь к папке с программой в качестве рабочего каталога:
Код:
Run("C:\Work\assistant.exe", "C:\Work")
Заработало! Спасибо за подсказку!

Отправлено: 11:52, 08-10-2008 | #971



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

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


Аватара для Frost_Imp

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


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

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


Всем доброго времени суток!
Прошу помочь мне написать следующий простенький код...
В общем есть у меня некое изображение на экране. Мне необходимо отследить, меняется ли цвет определенного пиксела... В общем смотрите:
Func GetBuf()
$time = 0
$err = 0
While $time <= 5000
$p = PixelGetColor (1162,434)
If $p = 0xEBEC76
$time= $time+500
Sleep (500)
Else
$err = $err + 1
$time= $time+300
Sleep (300)
EndIf
WEnd
EndFunc
Суть следующая: сначала задаю значение переменных $time и $err равными нулю. Затем вхожу в цикл, в начале которого проверяю значение $time, чтобы цикл не уходил в бесконечность. Затем определяю цвет пикселя в определенном месте окна (PixelGetColor). Если цвет меня устраивает (If $p = 0xEBEC76) - увеличиваю значение переменной $time, делаю паузу на полсекунды (Sleep (500)) и опять вхожу в цикл. Если цвет меня НЕ устраивает - увеличиваю значение переменной $err, делаю паузу (Sleep (300)) и снова вхожу в цикл, пока буду удовлетворять условиям $time <= 5000.
После выполнения функции меня интересует значение параметра $err. В случае, если оно >0, то все в порядке, и процедуру нужно повторить, скажем, через 5 минут. Но если это значение равно 0, то необходимо вывести какое-нибудь диалоговое окно, пикнуть встроенным динамиком компа и завершить процедуру.
Помогите, плиз, написать единый код, так как у меня проблемы с передачей параметров(

Отправлено: 14:10, 08-10-2008 | #972


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

Ветеран


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

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


Frost_Imp
Возвращай из функции значение и на основе этого значения переходи к тому или иному действию, что-то вроде этого:
Код: Выделить весь код
;Здесь у нас GUI
;;;;;;;;;;;;;;;;

;Главный цикл
While 1
    Sleep(100)
WEnd

Func GetBuf()
    Local $time = 0, $err = 0, $p

    While $time <= 5000
        $p = PixelGetColor(1162,434)
        If $p = 0xEBEC76
            $time= $time + 500
            Sleep(500)
        Else
            $err = $err + 1
            $time = $time + 300
            Sleep(300)
        EndIf
    WEnd

    If $err > 0 Then
        Return True
    Else
        Beep(500, 1000)
        Return False
    EndIf
EndFunc
Цитата:
процедуру нужно повторить, скажем, через 5 минут
Используй функции TimerInit(); TimerDiff()

Frost_Imp
Вариант без GUI:
Код: Выделить весь код
While 1
    Local $time = 0, $err = 0, $p

    While $time <= 5000
        $p = PixelGetColor(1162,434)
        If $p = 0xEBEC76 Then
            $time= $time + 500
            Sleep(500)
        Else
            $err = $err + 1
            $time = $time + 300
            Sleep(300)
        EndIf
    WEnd

    If $err = 0 Then
        Beep(500, 1000)
        Exit
    EndIf

    Sleep(1000 * 300) ;Пауза 5 мин.
WEnd

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


Отправлено: 15:07, 08-10-2008 | #973


Аватара для Frost_Imp

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


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

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


Maza Faka, спасибо! Подошел "Вариант без GUI". Я, правда, не понял, причем тут GUI...
Еще просьба: можно ли усовершенствовать эту процедуру таким образом, чтобы при ее запуске юзеру показывалось бы диалоговое окно, в которое он сам смог бы вносить различные парамеры? Ткните носом плиз, где это можно почитать либо опишите простой пример.
Буду очень благодарен!

Отправлено: 18:26, 08-10-2008 | #974


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

Ветеран


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

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


Цитата Frost_Imp:
Ткните носом плиз »
Читай справку, там всё очень подробно описано и показано.

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


Отправлено: 09:39, 09-10-2008 | #975


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


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

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


Народ помогите пожалуйста горю начинающего "автоитера".
Часто приходится переставлять приложение, которое настраивается несколько неудобным способом... Еще и само приложение сырое, но заставляют его использовать, так как других нету для этих целей.
В общем передо мной такая дилемма:
Надо найти иконку в трее, ткнуть по ней правой кнопкой мыши, в контектном меню выбрать пункт, открывается подменю, в нем выбираем значение левой кнопкой мыши... Затем еще раз по иконке в трее, и в основном контекстном меню выбрать другой пункт и нажать левой кнопкой... (Названия пунктов меню известно... )
Естественно точное расположение этой самой иконки в трее не известно... Само приложение нормально запускается и работает, но работает в фоне (GUI у него только для настройки и вызывается этой самой правой кнопкой по иконке). Все его настройки происходят через трей.

-------
ira furor brevis est


Последний раз редактировалось Grammaton Cleric, 09-10-2008 в 10:57.


Отправлено: 10:38, 09-10-2008 | #976


Googler


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

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


Creat0R

Valik'а вроде устроил последний вариант, дописал UDF и создал тему на оффсайте
ты бы прав насчет разработчиков - теперь они точно не реализуют эту фичу в AutoIT
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:30, 09-10-2008 | #977


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата amel27:
Valik'а вроде устроил последний вариант »
Ага, это он видимо полинился сам сделать подобное в качестве встроенной функции

Цитата:
дописал UDF и создал тему на оффсайте
Супер!

По поводу имени функции. Имхо, она будет лучше отражать смысл если её назвать хотя бы так: _StringRegExpCallBackReplace()
То что вызываема функция это и есть callback-функция это не спорю, но если посмотреть на встроенные функции, такие как GUIRegisterMsg, DllCallbackRegister, то там ведь указывается пользовательская функция, поэтому именно вызывающая функция должна хоть как то отражать её предназначение

Цитата:
теперь они точно не реализуют эту фичу в AutoIT
Если Valik найдёт проблему в UDF (и если его не побидит лень) то он скорее всего это сделает, насколько я помню, если он “загорается” что-то сделать (а в этом случае оно вроде так и есть), то рано или поздно оно реализуется.

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

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

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


Отправлено: 19:17, 09-10-2008 | #978


Аватара для ganselo

Старожил


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

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


Пред всем. У меня возникла проблемка, прошу помочь

Код: Выделить весь код
FileOpen (@ScriptDir & "\1.txt", 1)
HotKeySet ("{a}", "a")
HotKeySet ("{b}", "b")
HotKeySet ("{c}", "c")

While 1
	Sleep (100)
WEnd

Func a()
	FileWrite ("1.txt", "a")
EndFunc
Func b()
	FileWrite ("1.txt", "b")
EndFunc
Func c()
	FileWrite ("1.txt", "c")
EndFunc
Вобщем всё работает, скрипт запускается и записывает в файл 1.txt буквы а, b, c при нажатии соответствующих клавишь. Но после загрузки скрипта другие приложение не могут получять поток ввода от нажатий клавишь a,b,c (т.е если запущен скрипт и зайти в notepad например, то при нажатии a,b,c в notepade ни чего не происходит, но в файл 1.txt эти нажатия записываются). Собственно, как можно перенаправлять поток ввода и в приложение и в скрипт? help)

-------
К величайшему сожалению "история учит нас тому, что она ничему не учит".


Отправлено: 21:10, 09-10-2008 | #979


Аватара для Creat0R

Must AutoIt


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

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


Цитата ganselo:
как можно перенаправлять поток ввода и в приложение и в скрипт? »
Нужно отключать временно клавишу, отсыласть её, и включать обратно:

Код: Выделить весь код
$hFileOpen = FileOpen(@ScriptDir & "\1.txt", 1)

HotKeySet("^q", "_Quit")

HotKeySet("{a}", "_ABC")
HotKeySet("{b}", "_ABC")
HotKeySet("{c}", "_ABC")

While 1
    Sleep (100)
WEnd

Func _ABC()
    Local $sHotKey = @HotKeyPressed
    FileWrite($hFileOpen, StringRegExpReplace($sHotKey, "[\}\{]", ""))

    HotKeySet($sHotKey)
    Send($sHotKey)
    HotKeySet($sHotKey, "_ABC")
EndFunc

Func _Quit()
    FileClose($hFileOpen)

    Exit
EndFunc
Как видно, FileOpen() возвращает хендл (идентификатор), используя его пишем в файл, на выходе обязательно закрываем его.

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

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

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:59, 10-10-2008 | #980



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




 
Переход