Что нового

Как задать функцию с определенным наполнением?

Andeangl

Новичок
Сообщения
62
Репутация
4
Подскажите пожалуйста, как создать функцию? Что-то вроде такой:

Функция "Ожидание"
Sleep(Random(14000,24000))
Конец функции

И как её вызвать после этого?

Спасибо! =)​


Добавлено:
Сообщение автоматически объединено:

Небольшое дополнение:

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

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Re: Создание функции

Так?
Код:
#include <GUIConstantsEx.au3>

Ex1()

Func Ex1()
    $hGui1 = GUICreate("Окно 1") ; Создаёт окно в центре экрана
    $Button1 = GUICtrlCreateButton("Проверка наличия Мозилы", 10, 20)
    $Button2 = GUICtrlCreateButton("Выход", 10, 50)
    GUISetState(@SW_SHOW) ; показывает созданное окно

    ; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
    While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    Exit
                Case $Button1
                    Ex2()
                Case $Button2
                    Exit
            EndSwitch
    WEnd
    GUIDelete()
EndFunc


Func Ex2()

			If WinExists('[CLASS:MozillaWindowClass]', '') Then
				MsgBox('', '', 'Mozilla тут')
			Else
				MsgBox('', '', 'Mozilla еще не появилась')
			Return
			EndIf

EndFunc
 
Автор
A

Andeangl

Новичок
Сообщения
62
Репутация
4
Re: Создание функции

Да, спасибо =) а где можно прочитать, как писать функции (что за чем идет и т.д.)?
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Re: Создание функции

Andeangl

Конечно тут)))) http://autoit-script.ru/autoit3_docs/menu/total.htm
 
Автор
A

Andeangl

Новичок
Сообщения
62
Репутация
4
Re: Создание функции

Отметил =) Второй раз тут-в функционале не оч разбираюсь =)


Добавлено:
Сообщение автоматически объединено:

Блин, слишком много вариантов =)))

Кто-нибудь может написать как сделать функцию из этого:


Код:
If PixelGetColor(306,199)<>0xC40000 Then
   If PixelGetColor(32,186)=(0xBD1919 Or 0xA60004) Then
	  MouseClick("primary", $p1)
   Else
     If PixelGetColor(32,231)=(0xBD1919 Or 0x8B0004) Then
	    MouseClick("primary", $p2)
	 Else
		If PixelGetColor(32,272)=(0x7F0D0C Or 0xB63838) Then
	  MouseClick("primary", $p3)
   EndIf
EndIf
EndIf
If (PixelGetColor(32,186)<>(0xBD1919 Or 0xA60004)) And (PixelGetColor(32,231)<>(0xBD1919 Or 0x8B0004)) And (PixelGetColor(32,272)<>(0x7F0D0C Or 0xB63838)) Then
   If PixelGetColor(368, 380)=0x681B1A Then
	  MouseClick("primary", 368,378)
   EndIf


Заранее спасибо =)


Добавлено:
Сообщение автоматически объединено:

Да, и ещё вопрос: а так можно делать:

MouseClick("primary", $p3)

? =)
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
Re: Создание функции

Andeangl [?]
как сделать функцию из этого
Как в справке написано: http://autoit-script.ru/autoit3_docs/keywords/Func.htm
Перед этим кодом пишем ключевое слово Func, далее имя функции (придумываем сами), затем скобки. А после кода пишем ключевое слово EndFunc
Код:
Func ClickForMe()
; код
EndFunc

А в скрипте вместо этого кода пишем только имя функции
Код:
; код скрипта
ClickForMe()
; код скрипта


а так можно делать: MouseClick("primary", $p3)
Делать можно - ошибки не будет. Но и работать не будет. Чтобы работало, нужен ещё один параметр: координата Y. Если смещать по Y не нужно сделайте так
Код:
MouseClick("primary", $p3, Default)

Кстати, это
Код:
If PixelGetColor(32,186)=(0xBD1919 Or 0xA60004) Then
тоже, я думаю, работает не так, как вы хотите. Вероятно нужно так
Код:
If PixelGetColor(32,186)=0xBD1919 Or PixelGetColor(32,186)=0xA60004 Then
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,487
Re: Создание функции

Andeangl
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Создание функции" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.










ivsatel [?]
Вообще то есть кнопка такая
Вообще то есть правила форума, которые запрещают просить о повышении репутации (пункт А.10.5):
А. ...
10. ...
5. Просьба о повышении репутации за оказанную помощь, но при этом позволяется использовать личную подпись для этой цели.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Andeangl [?]
Да, и ещё вопрос:
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Автор
A

Andeangl

Новичок
Сообщения
62
Репутация
4
Админы, у меня есть два вопроса:

1) Вот вам чисто нравится что-ли придираться к новичкам? Я что, писатель что-ли, придумывать красивые названия?!
2) Вопрос относился к теме - все про ту же самую грамматику функции. Так что в чем проблема?

P.S. Можете давать банан хоть сразу - я зарегаюсь заново, не сложно =) Мне кажется намного лучше было бы не следить за глупыми правилами, а помочь. Хотя может я чего-то не понимаю, и тут кроме писателей никого нет, и всем больше ну вот совсем делать нечего, кроме как придумывать Умные Названия для вопроса "я тут очепятку сделал, нет?"

Видимо это должно выглядеть так:

"Высокочтимые сэры, не будете ли Вы столь любезны, чтобы проверить мои ничтожные творения на предмет некоторых неточностей, связанных с моей невнимательностью в не до конца изученном мною разделе, как то - грамматика языка нашего великого?"

P.P.S. Да, небольшое дополнение. Вот представьте такую картину: я студент, которому задают достаточно для того, чтобы сидеть в урока безвылазно, нахожу время чтобы заняться изучением языка который мне понравился. Т.к. самостоятельно искать ответы на вопросы у меня времени нет, я задаю их на форуме. И тут появляется Рыцарь в белых доспехах (причем аж два рыцаря сразу) и сообщают мне радостную новость, что для того чтобы я занимался тем чем мне нравится мне ну вот просто совершенно необходимо мыслить именно так, как задумали это Создатели Форума! Ведь без этого ну совершенно невозможно понять что мне нужно!!! Никакие коды и никакие самые длинные и развернутые объяснения не способны донести до остальных пользователей жалкий смысл моего замысла!!! Ну и, конечно же, иначе я буду сожжен инквизицией нафиг, вместе со своими хотелками.

Ну и вывод:
Вот неужели так сложно убрать эту глупейшую цензуру с форума для новичков? Почему любой вновь прибывший просто обязан угрохать минут 20 своего времени на то, чтобы придумать название для темы? Да любой нормальный человек, прочитавший содержимое поймёт в чем проблема быстрее, чем самый супер-пупер продвинутый юзер, прочитавший этот жалкий заголовок двадцать раз!

Убил на эту тираду 15 минут. Я в ярости =)
 

AZJIO

Меценат
Меценат
Сообщения
2,903
Репутация
1,200
Andeangl
Как вариант могу предложить тему на forum.ru-board.com, где правила настолько снисходительны, чту нужно именно заниматься полным флудом или терроризмом против участников форума, чтобы получить предупреждение.
Учитывайте, что хорошо представленная информация делает форум популярным и интересным предотвращая в течении 30 минут разгадывать посты новичков которые предоставляют информациию в виде "срочно нужно, чтобы эта фиговина долбанула в эту фиговину и та закорючка сдвинулась" и в течении 5 постов выясняем условия а при поиске в результатах не понять что обсуждается в теме, ведь они называются "срочно нужно", "помогите мне".
Пост удалю ибо в этой теме он является флудом, но может новички поймут, что это не торроризм против них. Ну и ещё "со своими правилами в монастырь не приходят"
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Andeangl [?]
Вот вам чисто нравится что-ли придираться к новичкам?
это жутко раздражает. поэтому мы новичком не любим, потому что новички прикрываясь своей новичковостью плюют на уставы тех мест, куда, вроде бы, пришли за помощью. я надеюсь, ты не ходишь в здание суда с криками, что ты новичок в этой жизни и что лучше бы они помогли тебе оплатить штраф за парковку, чем доставать этими глупыми сводами законов.
Можете давать банан хоть сразу - я зарегаюсь заново, не сложно =)
знаем. проходили. так думает каждый 0.5-ый мега-кул-хацкер. только банить, куда легче. не веришь?
бан – это нажатие двух ссылок и двух опций.
регистрация - заводить ящики, придумывать пользователя, пароль, заполнять регистрационные формы. в злостных случаях еще и прокси серверы искать рабочие. хотя что это я – булев флаг тебе в руки и магнитный барабан на шею.
Хотя может я чего-то не понимаю, и тут кроме писателей никого нет, и всем больше ну вот совсем делать нечего, кроме как придумывать Умные Названия для вопроса "я тут очепятку сделал, нет?"
да, ты явно не понимаешь. но складывается впечатление, что ты гордишься своим непониманием. объяснять каждому новичку правила, которые не с потолка взяли, вот на что у людей нет, а даже если и есть то тупо жалко, времени. куда легче клацнуть на кнопку и вставить шаблон предупреждения. умные люди примут все к сведению и пополнят многочисленную армию добросовестных пользователей портала. те, что не очень, будут бить себя в грудь, заявлять о правоте и пополнят менее многочисленную партизанскую группу забаненных пользователей. выбирать тебе. хотя ты, мой друг, очень близок ко второй группе.
Видимо это должно выглядеть так:
выглядеть это должно так, как написано в маленьком рекомендательном топике, если перейти по ссылке. но что ты, ты человек супер-занятой. тебе не досуг такими глупостями заниматься. ты лучше потратишь 15 минут своего драгоценного времени на возмущенную тираду.
нахожу время чтобы заняться изучением языка который мне понравился
ох ты бедный и несчастный. так бы сразу и сказал, что у тебя времени нет. пришли свои координаты, мы тебе еще и сиделку наймем, она будет за тебя печатать твои умные вопросы. еще и все правила за тебя прочитает и оформит как надо.
тут появляется Рыцарь в белых доспехах (причем аж два рыцаря сразу) и сообщают мне радостную новость, что для того чтобы я занимался тем чем мне нравится мне ну вот просто совершенно необходимо мыслить именно так, как задумали это Создатели Форума!
представь себе, именно так. ты должен мыслить на 1% так, как мыслят те, кто устанавливают регламент данного форума. арифметика простая – что-то не нравится? "дверь" там.
Вот неужели так сложно убрать эту глупейшую цензуру с форума для новичков?
это не сложно. это несоизмеримо глупо. и никто делать этого не будет. так что, deal with it ;)

Почему любой вновь прибывший просто обязан угрохать минут 20 своего времени на то, чтобы придумать название для темы?
а почему другие обязаны грохать часы своего времени, чтобы потом разгребать информационные фекалии таких лентяев как ты? исключение только для детей депутатов. если ты не сын депутата, то будешь тратить 20, а то и все 30 минут времени.
 
Верх