|
|
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Такой вопрос. Сделал простой кликер с перемещением курсора по указанным координатам + кликание по данным координатам. Но появилась такая проблема во время работы, тоесть когда нажимаю кнопку зависает сама форма. Прошерстил интернет и так понял что проблема в том что код нагружает форму и она из за этого виснет. Из чего сделал вывод что надо сделать поток. Но поток не получается сделать. Не понимаю почему все испробовал вообще никак. Не могу как прописать что бы поток выполнял функции кнопки. Или мб это как то по другому должно быть. Надеюсь вот что вы мне подскажите как исправить. Application.ProcessMessages не помог мне. ну либо пример кода как можно реализовать клик по координатам через поток ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 03:29 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Что такое кликер ? Что означает "перемещение курсора по указанным координатам" ? Какого курсора ? Курсора мыши ? Что такое "кликание по указанным координатам" ? Из чего Вы сделали вывод, что Вам нужен поток ? Почему Вы решили, что "поток может выполнять функции кнопки" ? Что означает фраза "как можно реализовать клик по координатам через поток" ? Иными словами, попробуйте представить, что читатели Вашего поста ничего не знают о том, что Вы хотите сделать и как Вы пытаетесь сделать. Представьте, что они не читали Ваш код. И после этого напишите все заново. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 07:07 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Поток не поможет. Ищи в каком месте зависает программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 07:19 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
yisanog246 Такой вопрос. Сделал простой кликер с перемещением курсора по указанным координатам + кликание по данным координатам. Но появилась такая проблема во время работы, тоесть когда нажимаю кнопку зависает сама форма. Прошерстил интернет и так понял что проблема в том что код нагружает форму и она из за этого виснет. Из чего сделал вывод что надо сделать поток. Но поток не получается сделать. Не понимаю почему все испробовал вообще никак. Не могу как прописать что бы поток выполнял функции кнопки. Или мб это как то по другому должно быть. Надеюсь вот что вы мне подскажите как исправить. Application.ProcessMessages не помог мне. ну либо пример кода как можно реализовать клик по координатам через поток Если клик один, то даже если форма и зависает - это длиться микросекунды и не должно быть заметно. Думается мне причины тут не в потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 07:44 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Sinemurius, понял) сейчас уточню все вопросы). Автокликер: мне нужно что бы мышка курсора сама передвигалась по координатам которые я указал в коде и делала клик по этим координатам. Для этого я использовал это: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Как можно видеть там явно не 1 строчка. После того как жму кнопку на форме которая выполняет эти функции. Форма подвисает пока не выполнит их. А так как нужно что бы эти действия повторялись постоянно( тоесть зацикленно ), то выходит что форма висит просто и не отвечает ни на что. Как понял Я( который понимает не много ), то это связанно с тем что весь процесс происходит в главной форме. Из этого выходит вопрос. Можно ли сделать так что бы эти действия выполнялись в фоновом процессе ( а как я понял это отдельный поток ) что бы не нагружать главную форму, или нет. Если можно был бы очень признателе если бы подсказали примером, или объяснили немного. Книжки читал, видосы и гугл исползовал. Не получается у меня к сожалению. Прошу помощи у вас) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:06 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
yisanog246, Форма у вас фризится из-за Sleep'ов. По идее операцию ожидания можно перенести в другой поток, который будет сигнализировать главному, что настало время делать то-то и то-то. Т.е. сделать поток, который крутится бесконечно, в нём реализовать ожидание (Application.ProcessMessages нельзя использовать) и отправку сообщения главной форме, в котором в параметре указать, какой шаг нужно делать. А на главной форме в обработке события реализовать перемещение курсора и клик. Вот примерное направление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:40 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
goldmi45, Понял. Спасибо буду пробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:43 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
goldmi45 yisanog246, Форма у вас фризится из-за Sleep'ов. По идее операцию ожидания можно перенести в другой поток, который будет сигнализировать главному, что настало время делать то-то и то-то. Т.е. сделать поток, который крутится бесконечно, в нём реализовать ожидание (Application.ProcessMessages нельзя использовать) и отправку сообщения главной форме, в котором в параметре указать, какой шаг нужно делать. А на главной форме в обработке события реализовать перемещение курсора и клик. Вот примерное направление. Проще же через таймер сделать? Чем в дебри потоков лезть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:43 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, таймер выполняется в главном потоке. И фриз главной формы не исчезнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:51 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, если через таймер то надо будет не 1 таймер делать верно? в один же нельзя все прописать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:51 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
yisanog246 Код: pascal 1. 2. 3. 4. 5. Здесь чудесно всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 08:52 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
wadman, а вот это не понял) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 09:04 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
yisanog246, кнопка нажимает сама на себя безусловно - это вечное зависание приложения до переполнения стека. ЗЫ. Кликер для своего приложения таким способом - пустая трата времени. Кнопки, события и так доступны своему приложению. Кликер для другого приложения, если эта игра, бесполезен, т.к. в них давно встроены защиты от волшебных перемещений мыши и фокуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 09:33 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
wadman, ну не знаю. у меня все работает норм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 09:36 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
goldmi45 Андрей Игоревич, таймер выполняется в главном потоке. И фриз главной формы не исчезнет. Зависание формы происходит из-за "sleep", который при таймере не нужен. yisanog246 Андрей Игоревич, если через таймер то надо будет не 1 таймер делать верно? в один же нельзя все прописать? Можно в несколько, можно в один, но с условием, например счетчик - Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Это всё, конечно, знатный "колхоз". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 09:47 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич Это всё, конечно, знатный "колхоз". Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 10:21 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
безотносительно всего остального кода в теме, таймер думаю вполне допустим что бы вот в самом деле в доп. поток не лезть и с синхрой не возится и так всяко. только что i лучше сделать полем формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 11:02 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Решил через потоки делать. Поток запускается все ок. Но надо делать остановку потока и запускать его снова после каждого передвижения курсора мыши. Не могу разобраться как правильно прописать это : TMyThread.Suspend; TMyThread.Resume; Ну и по коду подскажите, а то кажется как то через дебри я поток запускаю. Пробовал с кнопки запустить поток, но не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2020, 12:39 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Да, отличный пример как делать не надо. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2020, 12:41 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Даже спорить не буду) А как лучше подскажите пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2020, 12:47 |
|
||
|
Потоки
|
|||
|---|---|---|---|
|
#18+
yisanog246 Ребят подскажите? Вам уже подсказали: 22124011 , только переменную i описать как поле формы, а не глобально. И положить на форму таймер с интервалом 4500. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2020, 13:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39952202&tid=2038362]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 511ms |

| 0 / 0 |
