purebasic.info

PureBasic forum
Текущее время: Сб сен 22, 2018 3:04 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Вт июн 26, 2018 6:41 pm 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Доброго времени суток, несколько лет не был на вашем форуме,

вот вдруг стало необходимо написать программку с Рандомными кликами на экране компа,

что например нужно поменять в коде ниже вместо координат X и Y чтобы клик был кажый раз произвольным в любую точку?

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Temp.POINT ; Это структура POINT 
MouseX=8 ; Куда кликать
MouseY=67
GetCursorPos_(@Temp) ; Текущая позиция курсора мышки
SetCursorPos_(MouseX, MouseY) ; Установка новой позиции курсора мышки
 
mouse_event_(#MOUSEEVENTF_ABSOLUTE | #MOUSEEVENTF_LEFTDOWN, MouseX,MouseY,0,0) ; Эмуляция нажатия левой кнопки мышки
Delay(10000) ; Пауза на 100 миллисекунд
mouse_event_(#MOUSEEVENTF_ABSOLUTE | #MOUSEEVENTF_LEFTUP, MouseX,MouseY,0,0) ; Эмуляция отпускания левой кнопки мышки
SetCursorPos_(Temp\x, Temp\y) ; Восстанавливаем старую позицию курсора мышки
 
Temp.POINT ; Это структура POINT
MouseX=8 ; Куда кликать
MouseY=67
GetCursorPos_(@Temp) ; Текущая позиция курсора мышки
SetCursorPos_(MouseX, MouseY) ; Установка новой позиции курсора мышки
 
 



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июн 26, 2018 6:52 pm 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
да и еще забыл добавить, кроме этого как сделать что бы клик срабатывал в определеном промежуте времени?

например рандомное время в произвольном проможутке времени от 10 минут до 1 часа


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 7:17 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
Используй функцию Random(), которая возвращает случайное число в заданном диапазоне значений.
Что бы клик срабатывал в определенном промежутке времени, используй Delay(Random(600000, 3600000)).


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 9:56 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
alone67 писал(а):
Используй функцию Random(), которая возвращает случайное число в заданном диапазоне значений.
Что бы клик срабатывал в определенном промежутке времени, используй Delay(Random(600000, 3600000)).


Спасибо, за подсказку по временному интервалу.

а в графических координатах как выставить Рандомный клик без оси X и Y , что бы мышка кликала каждый раз произвольно в разные точки экрана


Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Temp.POINT ; Это структура POINT
MouseX=8 ; Куда кликать
MouseY=67
GetCursorPos_(@Temp) ; Текущая позиция курсора мышки
SetCursorPos_(MouseX, MouseY) ; Установка новой позиции курсора мышки
 
mouse_event_(#MOUSEEVENTF_ABSOLUTE | #MOUSEEVENTF_LEFTDOWN, MouseX,MouseY,0,0) ; Эмуляция нажатия левой кнопки мышки
Delay(10000) ; Пауза на 100 миллисекунд
mouse_event_(#MOUSEEVENTF_ABSOLUTE | #MOUSEEVENTF_LEFTUP, MouseX,MouseY,0,0) ; Эмуляция отпускания левой кнопки мышки
SetCursorPos_(Temp\x, Temp\y) ; Восстанавливаем старую позицию курсора мышки
 
Temp.POINT ; Это структура POINT
MouseX=8 ; Куда кликать
MouseY=67
GetCursorPos_(@Temp) ; Текущая позиция курсора мышки
SetCursorPos_(MouseX, MouseY) ; Установка новой позиции курсора мышки
 
 
 



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 10:42 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
сейчас попробую

с координатами еще

попозже проверю будет это работать или нет

Код:
1
2
3
4
5
6
7
8
9
10
Temp.POINT ; Это структура POINT 
MouseX=(Random(8, 900)). ; Куда кликать
MouseY=(Random(8, 800)).
GetCursorPos_(@Temp) ; Текущая позиция курсора мышки
SetCursorPos_(MouseX, MouseY) ; Установка новой позиции курсора мышки
 
mouse_event_(#MOUSEEVENTF_ABSOLUTE | #MOUSEEVENTF_LEFTDOWN, MouseX,MouseY,0,0) ; Эмуляция нажатия левой кнопки мышки
Delay(Random(600000, 3600000)) ; Пауза на 100 миллисекунд
mouse_event_(#MOUSEEVENTF_ABSOLUTE | #MOUSEEVENTF_LEFTUP, MouseX,MouseY,0,0) ; Эмуляция отпускания левой кнопки мышки
SetCursorPos_(Temp\x, Temp\y) ; Восстанавливаем старую позицию курсора мышки



Temp.POINT ; Это структура POINT
MouseX=(Random(8, 900)). ; Куда кликать
MouseY=(Random(8, 800)).
GetCursorPos_(@Temp) ; Текущая позиция курсора мышки
SetCursorPos_(MouseX, MouseY) ; Установка новой позиции курсора мышки


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 10:50 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
точка в конце строчки нужна или нет?

MouseX=(Random(8, 900)). ; Куда кликать

или так?

MouseX=(Random(8, 900)) ; Куда кликать


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 11:17 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
и еще вопрос как перед кликом
сделать еще произвольное движение (Рандомное) мышью?

чтобы стрелка мыши визуально медленно двигалась по экрану


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 12:58 pm 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
Xland писал(а):
точка в конце строчки нужна или нет?

Точка в конце строки не нужна.
Xland писал(а):
и еще вопрос как перед кликом
сделать еще произвольное движение (Рандомное) мышью?

чтобы стрелка мыши визуально медленно двигалась по экрану

Для медленного рандомного перемещения курсора в цикле изменяй текущие значения координат на небольшое число (3-5 пикселей), и после каждого изменения делай небольшую задержку с помощью Delay(). Задержку нужно подбирать опытным путем. Я думаю она будет где-то 100-200 миллисекунд.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июн 27, 2018 4:12 pm 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 10, 2018 8:51 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Еще я заметил

если точка в место запятой, компиляция идет без ошибки

Код:
1
MouseX=(Random(8. 900)) ;



если запятая то выдает ошибку

Код:
1
MouseX=(Random(8, 900)) ;



или это только на старой версии purebasic получается?
или надо библиотеку еще какую подключить?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 10, 2018 9:06 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 271
Благодарил (а): 14 раз.
Поблагодарили: 32 раз.
Пункты репутации: 0
Xland писал(а):
если запятая то выдает ошибку
Цитата:
[09:00:42] [ERROR] Random (): Минимальное значение не может превышать максимальное значение.
Это второй параметр, он должен быть меньше первого.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 10, 2018 9:12 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
repeat писал(а):
Xland писал(а):
если запятая то выдает ошибку
Цитата:
[09:00:42] [ERROR] Random (): Минимальное значение не может превышать максимальное значение.
Это второй параметр, он должен быть меньше первого.


как будет правильно тогда с запятой?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт июл 10, 2018 10:13 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
Xland писал(а):
repeat писал(а):
Xland писал(а):
если запятая то выдает ошибку
Цитата:
[09:00:42] [ERROR] Random (): Минимальное значение не может превышать максимальное значение.
Это второй параметр, он должен быть меньше первого.


как будет правильно тогда с запятой?


Result = Random(Maximum [, Minimum])

Первый параметр - максимальное значение
Второй параметр (необязательный) - минимальное значение

Если второй параметр не указан, то возвращается случайное число от 0 до Maximum. А если указан, то возвращается случайное число от Minimum до Maximum.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июл 11, 2018 5:49 am 
Не в сети
док

Зарегистрирован: Пн июн 28, 2010 1:07 pm
Сообщений: 75
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Result = Random(Maximum [, Minimum])

Цитата:
Первый параметр - максимальное значение
Второй параметр (необязательный) - минимальное значение

Если второй параметр не указан, то возвращается случайное число от 0 до Maximum. А если указан, то возвращается случайное число от Minimum до Maximum.



Спасибо, например так? Result = Random(60000 [, 40000])

но чет у меня ошибку синтаксическую выдает, или у меня старая версия 4.51 purebasic?

https://www.purebasic.com/documentation ... andom.html

Цитата:
Пётр, это появилось в версии 5.10? А то я сейчас в основном пятой пользуюсь, а демку 5.10 редко запускаю


viewtopic.php?t=2932&p=45115


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср июл 11, 2018 7:07 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Вт ноя 22, 2016 7:59 am
Сообщений: 77
Откуда: Россия/Пятигорск
Благодарил (а): 0 раз.
Поблагодарили: 15 раз.
Пункты репутации: 0
Xland писал(а):
Спасибо, например так? Result = Random(60000 [, 40000])

но чет у меня ошибку синтаксическую выдает, или у меня старая версия 4.51 purebasic?


квадратные скобки в коде ставить не нужно!!! они просто показывают, что параметр не обязательный


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB