Добрый день, уважаемые знатоки. Есть 2 скрипта которые работают параллельно. 1 скрипт мониторит появление картинки, второй скрипт совершает некие действия. В случае появление картинки (первый скрипт) необходимо поставить на пауза выполнения второго скирпта и выполнить действия. После определенных действий, необходимо запустить выполнение второго скрипта с начала. В программе AHK можно было задать горячие кнопки для запуска скрипта с начала, пауза и выключить скрипт. Хотелось бы это увидеть в данной программе, или понять, как это можно реализовать самому.
Спасибо.
1. band - 18 Мая, 2017 - 00:31:51 - перейти к сообщению
2. Dantes3000 - 19 Мая, 2017 - 01:57:21 - перейти к сообщению
делай все в одном скрипте
3. band - 19 Мая, 2017 - 05:09:41 - перейти к сообщению
Dantes3000 пишет:
делай все в одном скрипте
Нельзя, т.к. циклы в главном скрипте могут быть продолжительные по времени, а реакция на появление картинки – моментальная )
4. Dantes3000 - 19 Мая, 2017 - 06:52:04 - перейти к сообщению
Используй таймер
5. band - 22 Мая, 2017 - 00:21:16 - перейти к сообщению
Dantes3000 пишет:
Используй таймер
А не могли бы вы ткнуть носом в пример ? Спасибо.
6. band - 22 Мая, 2017 - 04:30:55 - перейти к сообщению
Разобрался, с enabletimer(0) и CREATE_TIMER(0, 200)
Но тут возникла проблема, если в скрипте есть pause(3000); в данном случае таймер не отработает.
Но тут возникла проблема, если в скрипте есть pause(3000); в данном случае таймер не отработает.
7. Kibor - 22 Мая, 2017 - 04:59:09 - перейти к сообщению
mu_pause(3000);
function mu_pause(int p)
{
for (int t=gettime(); gettime()-t<p; sleep(10)){}
}
function mu_pause(int p)
{
for (int t=gettime(); gettime()-t<p; sleep(10)){}
}
8. band - 22 Мая, 2017 - 07:56:20 - перейти к сообщению
Kibor пишет:
mu_pause(3000);
function mu_pause(int p)
{
for (int t=gettime(); gettime()-t<p; sleep(10)){}
}
function mu_pause(int p)
{
for (int t=gettime(); gettime()-t<p; sleep(10)){}
}
Оригинальный костыль, разбить паузу по 10 мс.
Спасибо за помощь. Только это ведь касается не только паузы, ну и плавного передвижение мыши например, в момент передвижения, пока мыщь не остановилась, таймер не отработает тоже.
Я конечно прошу прощение за назойливость, но есть такие необходимости.
9. Kibor - 22 Мая, 2017 - 08:06:43 - перейти к сообщению
Это таймер, а не многопоточность. Не надо путать.
Таймер ПРЕРЫВАЕТ выполнение кода в момент своего исполнения.
При грамотно составленном алгоритме проблем не возникает.
Таймер ПРЕРЫВАЕТ выполнение кода в момент своего исполнения.
При грамотно составленном алгоритме проблем не возникает.