|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|
Быстрая функция Sleep31.05.2021, 11:55. Показов 6968. Ответов 21
Перемещаю мышь по кривым безье за определённое время. Очень часто вызывается Sleep(1) много раз, при этом накладные расходы на вызов Sleep огромные.Таким образом 100 раз по Sleep(1) длятся полторы секунды, а не около 100 милисекунд.
Чем можно заменить винапишную Sleep чтобы всё было не так печально?
0
|
|
| 31.05.2021, 11:55 | |
|
Ответы с готовыми решениями:
21
функция sleep() Функция sleep()
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
|||||||||||||
| 31.05.2021, 12:05 | |||||||||||||
|
Включение повышенного разрешения:
PS. Обычно, браузеры включают повышенное разрешение.
2
|
|||||||||||||
| 31.05.2021, 12:15 | |
|
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
||||||
| 31.05.2021, 12:31 | ||||||
|
Ошибся. Выключать надо
Не по теме: D1973, случайно заметил было, когда пытался вывести анимацию. То Sleep(1) срабатывал быстро, то медленно. В итоге нашёл, что быстро срабатывал при запуске оперы.
0
|
||||||
|
Злостный нарушитель
10249 / 5676 / 1262
Регистрация: 12.03.2015
Сообщений: 26,311
|
|
| 31.05.2021, 12:48 | |
|
Вариант без Sleep() надо или и так сойдёт?
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
|
| 31.05.2021, 13:01 | |
|
А зачем перемещать каждую 1 мс? Сама мышь обычно двигается с интервалом 10-16 мс.
Добавлено через 24 секунды И с таймером не лучше ли будет?
0
|
|
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|||||||||||
| 31.05.2021, 13:25 [ТС] | |||||||||||
|
AzAtom, Не знал этого, спасибо. Но всё равно не помогло. Написал такой пробный код.
Задержка высчитывается автоматически, исходя из длины кривой и того времени за которое эту кривую надо мышью пройти. Если мало точек или большое общее время, то там будет не 1мс а больше. Добавлено через 22 минуты На просторах сети нашёл вот такую функцию. Работает точно, но прилично нагружает процессор.
0
|
|||||||||||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
||
| 31.05.2021, 14:25 | ||
|
KOTOM, ну как бы в windows не гарантируется точность Sleep. Если нужна точность, то надо считывать системное время и учитывать миллисекунды оттуда.
Добавлено через 3 минуты Лучше всего, думаю, по таймеру с интервалом 15 мс считывать системное время и уже опираться на его показания. Это будет точно по времени и минимально по нагрузке процессора. Если хочется внутри одного цикла, то опять же, Sleep(15).
1
|
||
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|
| 31.05.2021, 14:39 [ТС] | |
|
AzAtom, Я пробовал делать так. Перемещаю мышь типа виртуально, накапливая нужную задержку до 16мсек. Когда накопленная задержка становится 16мсек или больше, то я перемещаю мышь уже фактически, делаю Sleep(16) и начинаю всё заново. Но почему-то при этом у меня начинает вырубаться монитор, да и помогает не сильно. В дебагере смотрел, всё правильно работает, откуда глюки - непонятно.
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
|
| 31.05.2021, 14:46 | |
|
KOTOM, интересно. А можно глянуть код, который вырубает монитор?
![]() Слегка заинтересовался. Если будет время, вечером набросаю свой вариант перемещения мыши по заданным координатам.
0
|
|
|
Злостный нарушитель
10249 / 5676 / 1262
Регистрация: 12.03.2015
Сообщений: 26,311
|
|
| 31.05.2021, 14:54 | |
|
На всякий случай оставлю это здесь.
0
|
|
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|
| 31.05.2021, 15:24 [ТС] | |
|
AzAtom,
Не по теме: Эмуляцию кода который вырубает монитор скинул в личку. Причём там важнен и сам SendInput и манипуляции с мышью одновременно. По отдельности монитор не вырубается. И насколько я понял важно именно перемещение мыши туда, где она и так сейчас есть. Поменял местами Sleep и MouseMove в том своём коде который куски по 16мсек отсчитывает и всё стало лучше, монитор вырубаться перестал и точность немножно поднялась.
0
|
|
| 31.05.2021, 15:33 | |||||||
0
|
|||||||
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
||||||
| 31.05.2021, 15:43 [ТС] | ||||||
|
Puporev, Пожалуйста. Я то думал это будет оффтоп.
0
|
||||||
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
|
| 31.05.2021, 16:49 | |
|
KOTOM, а зачем тут устанавливать скорость мыши? Это же относится только к физической мышке? А программно можно подавать SendInput как хочется.
0
|
|
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|
| 31.05.2021, 17:04 [ТС] | |
|
AzAtom, Я этот код писал несколько лет назад, не помню уже. Проблемы возникли с девайсом usb2kbd. Скорее всего с эмуляционными функциями тоже были проблемы. У меня там целый ворох функций для перемещения мыши и везде если стоит относительное перемещение мыши, то это перемещение обёрнуто изменениями скорости. В том примере который я скинул нет фрага MOUSEEVENTF_ABSOLUTE, значит перемещение относительное, а так как там стоит 0,0 то оно ещё и в ту же точку где находится курсор.
Кстати у вас монитор тоже выключается?
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
|||
| 31.05.2021, 17:32 | |||
|
0
|
|||
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|
| 31.05.2021, 17:38 [ТС] | |
|
AzAtom, Относительное перемещение нужно например в играх, где курсор всегда как бы в одном месте. Как пример могу привести например Arcanum. Там с мышью вообще всё плохо, а если делать GetCursorPos то он всегда в 799:599.
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,354
|
||||||
| 01.06.2021, 13:51 | ||||||
Сообщение было отмечено KOTOM как решение
Решение
Вот такую штуку сделал. Тут нет настроек параметров мыши и монитор не вырубается:
0
|
||||||
|
68 / 33 / 11
Регистрация: 18.07.2014
Сообщений: 263
|
|
| 01.06.2021, 16:40 [ТС] | |
|
AzAtom, Практически тоже самое что и у меня если выбрать абсолютные нормализованные координаты, но у меня задержка расчитывается исходя из длины куска кривой безье, а не количества точек. А почему используется Now а не timeGetTime?
С моим кодом монитор вырубается?
0
|
|
| 01.06.2021, 16:40 | |
|
Помогаю со студенческими работами здесь
20
функция Sleep() ? функция sleep()
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|