Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Vint

Pages: [1] 2 3 4
1
Любителям Visual Studio Code сделал подсветку синтаксиса.

Хотел сделать автодополнение, но там очень сложно, поэтому прописал всё сниппетами. Так тоже нормально.

Качаем всё и ставим с GitHub
https://github.com/Vintets/ClickermannLangConfigForVSCode

Демо:
https://youtu.be/5D_4wNOWO8E

Вид в разных темах

Theme Dark +


Theme Monokai +


Theme Light +


Theme Quiet Light

2
Разработчик ботов и читов для WoT и WoWS Андрей Кирсанов выступил на суде с последним словом, ему дали 2,5 года условно

https://habr.com/ru/news/t/675440/?from=feed

Это шедевр!
"Специалисты МВД провели контрольную закупку ботов на сайте Кирсанова, испробовали их в игре и выдали заключение, что данное ПО является вредоносным, поскольку «приводит к модификации компьютерной информации»."

Что там с разработчиками почти всех программ? Например блокнота. Если с помощью блокнота вы измените текст, тем самым модифицируете компьютерную информацию, то блокнот становится вредоносным ПО!


3
Продолжаем интеграцию.

Вернулся к одной заброшенной библиотеке. Потихоньку её переделываю под свежую версию кликера. Попутно добавляя функционал.

Скачать CMTools_v1.4.0

В свой проект кидаем папку CMTools со всем содержимым.
Code: (clickermann) [Select]
// Подключение
#include "CMTools\CMTools_CMS.cms"

Функции:
Можно открыть файл "CMTools\CMTools_CMS.cms" и почитать какие есть функции и что они принимают и отдают.

1.
Code: (clickermann) [Select]
// получить дескриптор окна (hWnd)
CME_WinGetHandle("[CLASS:Notepad++]", "")

2.
Code: (clickermann) [Select]
// получает дескриптор окна рабочего стола (hWnd)
// на данной версии почему-то получает другой hwnd
CME_GetDesktopWindow()

3.
Code: (clickermann) [Select]
// получает PID окна
CME_WinGetProcess("[CLASS:Notepad++]", "")

4.
Code: (clickermann) [Select]
// получает PID окна Clickermann-а
CME_WinGetProcessCM()

5.
Code: (clickermann) [Select]
// получает состояние указанного окна
CME_WinGetState("[CLASS:Notepad++]", "")

6.
Code: (clickermann) [Select]
// Ставит окно поверх всех окон
CME_WinSetOnTop("[CLASS:Notepad++]", 1)

7.
Code: (clickermann) [Select]
// Устанавливает прозрачность окна. 255 = непрозрачно, 0 = прозрачно (невидимое)
CME_WinSetTrans("[CLASS:Notepad++]", 1)

8.
Code: (clickermann) [Select]
// отслеживаем WheelScroll любое движение колеса мыши
CME_MouseWheelScrollEvent(1, 0, 0)
Аргументы вызова:
первый  1/0 - запустить/остановить отслеживание сообщений WheelScroll
второй   0/hwnd  можно указать hwnd окна для которого будут отслеживаться сообщения
третий   1/0  блокировать/НЕ блокировать события. Если блокировать, события не будут передаваться окнам.

При событии:
переменной $WheelScrollEvent присваивается значение 1  (сбрасывать в 0 нужно самому, когда это нужно)

9.
Code: (clickermann) [Select]
// отслеживаем WheelScroll UpDown раздельное вверх/вниз вращение колеса мыши
CME_MouseWheelScrollEventUpDown(1, 0, 0)
Аргументы вызова:
Такие же, как и в функции CME_MouseWheelScrollEvent

При событии:
переменной $WheelScrollEvent присваивается значение 2 - вверх или 3 - вниз (сбрасывать в 0 нужно самому, когда это нужно)

10.
Code: (clickermann) [Select]
// отслеживаем MouseMoveEventUpDown перемещение указателя мыши
CME_MouseMoveEvent(1, 0, 0)
Аргументы вызова:
Такие же, как и в функции CME_MouseWheelScrollEvent

При событии:
переменной $MouseMoveEvent присваивается значение 1  (сбрасывать в 0 нужно самому, когда это нужно)

11.
Code: (clickermann) [Select]
// преобразовать область в GREYSCALE
// работает! Подправил по версию 4.13.14 x32 и x64. Осторожнее с большими областями ))
CME_GREYSCALE($x1, $y1, $x2, $y2)

12.
Code: (clickermann) [Select]
// применить к области DramContrast - контраст dramster-а
// работает! Подправил по версию 4.13.14 x32 и x64. Осторожнее с большими областями ))
CME_DRAMCONTRAST($x1, $y1, $x2, $y2, $mid, $k)
http://crapware.aidf.org/forum/index.php?topic=2399.msg15031#msg15031


Продолжение следует...

Примеры запуска файлов с тестами:

Test_Windows.png


Test_MouseEvent.cms


Test_Buffer.cms
Original

Greyscale

Dram-Contrast 147, 25

Dram-Contrast 160, 255


5
На днях столкнулся с багом. Делал скрипт под Nox и в определённый момент часть кликов перестала проходить. Изучив проблему и проведя тесты что выяснил:
если больше одного монитора и на них стоит разное разрешение, то клики/перемещения в координаты превышающие меньший монитор (или дополнительный, тут ХЗ) сбрасываются в X1max. Важно! Это происходит не всегда, а только если окно кликера (главное или редактор) находятся на меньшем мониторе.

Мой пример.
Есть 2 монитора. Основной левый 1920x1080. Дополнительный правый 1600x900
$_xmax, $_ymax кликер выдаёт 3519x1079 что суммарно правильно.

Вот демонстрационный код
Code: (clickermann) [Select]
MOVE(1000, 900)
LOGWRITE("X/Y  ", $_xmouse, "/", $_ymouse)
HALT

На тесте пере6двигаем в координаты 1000x900 которые присутствуют всегда и находятся в области первого монитора.
Заметим, что Y больше чем максимум второго монитора 899.

При нахождении окна кликера на основном мониторе кликер двигает правильно в
Quote
15:18:59 X/Y  1000/900

При нахождении окна кликера на дополнительном мониторе курсор уходит в
Quote
15:19:07 X/Y  1919/900
т.е. координата X становится максимальной от первого монитора 1919, Y при этом сохраняется.

Кликер при нахождении на конкретном мониторе сравнивает координаты с максимальными именно этого монитора, даже если глобально они попадают не на него и в итоге ограничивает X первым монитором. Почему именно так, ну, такая ошибка.

Столкнулся, только когда окно NOX-а заняло слишком много места на экране и передвинул кликер на второй. И при этом рабочие координаты вышли за область второго монитора.
Понятно, что с этой ситуацией столкнуться только те, у кого на мониторах разное разрешение. Я вот столкнулся и мне пипец как неудобно.

6
Сломан принт в лог на 4.14.003b.
Он каждый раз всё перерисовывает или в цикле выводит, ХЗ
https://youtu.be/tw93Q7NgvxY

8
Прочее / Реклама
« on: April 11, 2020, 01:12:12 PM »
Оба на, реклама на форуме появилась. Я аж прозрел когда мне на телефоне полноэкранная выпрыгнула.
Это теперь задалбывать будет? Или это мой провайдер балуется?
Не, дело хорошее. Но если часто заходишь...

10
В версии 4.14.002b
В окне лупы при наведении на панель задач в Win10 изображение замирает и не опускается ниже ~4 px от верхней границы.
Координаты и цвет при этом показывают нормально реальные значения.

В 4.13.14 такого бага нет.

11
Ошибки / STRPOS не различает регистр
« on: May 16, 2019, 02:49:25 PM »
Давно это уже. Но сейчас функционал шире и стало неприятно.

Другие функции STRREPLACE, STRFILTER регистр различают.
STRCUT и STRCUT2 не проверял.

12
Прочее / Дерево - пожиратель самолётов
« on: January 06, 2019, 04:24:27 PM »
Засадили бикслер вчера в 15 часов. Высота была метров 15. Весь вечер кидал груз на леске, веревки небыло. Потом ещё ночью часик полтора, когда он начал орать на всю округу двумя пищалками. Ночью "доброжелатели" сбили его чуть ниже, но засадили основательно.
Сегодня весь божий день с 9 до 16. Так и не спас. Зацепил ветку

13
Прочее / Иллюзия движения
« on: October 26, 2018, 02:30:07 PM »
Собственно статья на хабре "Иллюзия движения"
https://habr.com/post/338796/

Недавно кому-то хотел дать ссылку на ранее прочитанную статью, но не смог найти в закладках. Сегодня случайно нашёл закладочку.
Статья, конечно,частично про видео, поля и FPS это обычно все знают и из других источников. Но почерпнуть новое и интересное можно. К тому же в статье не мало ссылок.
Интересные демонстрации на сайте https://www.testufo.com
Там несколько демок и можно поиграться настройками.
https://www.testufo.com/eyetracking#count=3&background=stars&pps=960&pattern=stars
https://www.testufo.com/persistence#photo=quebec.jpg&speed=auto960&pursuit=0&thickness=2&separation=16
https://www.testufo.com/blackframes#count=2&bonusufo=0&equalizer=1&background=000000
https://www.testufo.com/inversion#pattern=distortion&ppf=5

14
Прочее / Как кодинг влияет на мышление
« on: October 08, 2018, 10:36:20 PM »
По следам (и впереди следов) статьи с хабра
https://habr.com/company/binarydistrict/blog/425385/

Хоть и не программист, но заметил изменение мышления. Попытка всем донести, что нужно ставить задачи не двусмысленно. Пусть привыкают, что любое высказывание могут понять неправильно, особенно если оно сформулировано недостаточно чётко и ясно.

Вот здесь узнал себя:
Quote
Это — гибкий набор навыков, нацеленных на алгоритмическое решение задач, привычка комплексно использовать в повседневной жизни абстрагирование, декомпозицию, оценку, логическое мышление, точность и привычку замечать детали.
— Дорогой, не хочешь вынести мусорное ведро?
— Нет.
— Дорогой, вынесешь мусорное ведро?
— Ага.
(через два часа)
— Дорогой, вынеси мусорное ведро сейчас!

А как вы проводите лето изменились став мыслить программными алгоритмами?

P.S. про стаканы ночью мой любимый пример при попытке научить учитывать все ветки условий. А вот второе первый раз услышал:
Quote
-Мальчик, если хочешь приятно провести время, то меня зовут Таня.
-А если я не хочу приятно провести время, то как тебя зовут?

15
Прочее / Используемые термины
« on: June 20, 2018, 10:03:22 AM »
IF(PXL(100,100) = 255) не предлагать  нужны площади а не пиксели

Хотелось бы коснуться терминов.
Давайте для всеобщего лёгкого понимания будем пользоваться одними терминами, желательно официальными.
Quote
поиск изображения в прямоугольной области
Значит "область", а не "регион", "площадь", "зона", "район" или "территория".

Кто у нас тут активный, может забацает на досуге рекомендуемый словарь.

Официальное название + допустимые синонимы. И приклеить на видном месте.
А то некоторые применяемые "синонимы" иногда затрудняют понимание.

Или это я загнался?

Pages: [1] 2 3 4