Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: Peter, DEMBEL  
Форум NeoBook » Всё о программе NeoBook » Плагины для NeoBook » Плагин faMouseHook
Плагин faMouseHook
frolandrДата: Чт, 06 Июля 2023, 21:27 | Сообщение # 1
Участник
Создает глобальный хук для мыши, перехватывая ее события.

Команды плагина:

Установка / удаление
faMouseHookCreate - установить глобальный хук мыши.
faMouseHookRemove - удалить глобальный хук мыши.

Настройка сообщений на событие Move
faSettingsOfMoveEvent - выбрать параметры, которые нужно получить информация будет поступать в определенные переменные.

Установка подпрограмм
faSubroutineLeftButton - установить подпрограмму для левой кнопки мыши.
faSubroutineRightButton - установить подпрограмму для правой кнопки мыши.
faSubroutineMiddleButton - установить подпрограмму для средней кнопки мыши.
faSubroutineWhell - установить подпрограмму для колесика мыши.

Информация о настройках мыши
faIsMouseInstalled - проверить установлена ли мышь, если true - установлена, если false - не установлена.
faIsWheelMountedMouse - проверить есть ли колёсико у мыши, если true - колёсико есть, если false - колёсика нет.
faGetNumberButtonsMouse - получить количество кнопок мыши, вернет количество кнопок, если 0 - мышь не установлена.
faCheckButtonsReassigned - проверить переназначены ли кнопки мыши, tсли true - переназначены (для левши), false - не переназначены (для правши).
faGetWhellScrolllines - получить количество строк для прокрутки колесика мыши, значение по умолчанию - 3.

С помощью плагина можно получить информацию о кнопках и колесике мыши: они записываются в переменную [faMouseButton], события такие: LEFT_DOWN, LEFT_UP, RIGHT_DOWN, RIGHT_UP, MIDDLE_DOWN, MIDDLE_UP, WHEEL. Различается направление прокрутки колесика, событие сохраняется в переменную [faMouseWheel], их два: WHEEL_FORWARD, WHEEL_BACKWARD. В переменную [faMouseWhellScroll] записывается цифра соответствующая прокрутке колесика.

Имеются дополнительные опциональные возможности получения некоторых данных. Они записываются в следующие переменные:
[faMouseX] и [faMouseY] - координаты мыши,
[faHandleClick] и [faHandleMove] - значение хэндла того объекта, на котором был клик левой кнопкой мыши или находится курсор мыши,
[faObjectClassName] - имя класса объекта,
[faObjectCaption] - текст или заголовок окна,
[faObjectLeft], [faObjectRight], [faObjectTop], [faObjectBottom] - координаты объекта,
[faObjectWidth], [faObjectHeight] - размеры объекта,
Переменная [faMouseHookWarning] - предназначена для предупреждающих сообщений.

Команды получения информации о мыши и ее настройках можно получать без установки хука.

Ссылка на плагин версии 1.1 и две демки.


Сообщение отредактировано
frolandr - Пн, 17 Июля 2023, 20:37
 
СообщениеСоздает глобальный хук для мыши, перехватывая ее события.

Команды плагина:

Установка / удаление
faMouseHookCreate - установить глобальный хук мыши.
faMouseHookRemove - удалить глобальный хук мыши.

Настройка сообщений на событие Move
faSettingsOfMoveEvent - выбрать параметры, которые нужно получить информация будет поступать в определенные переменные.

Установка подпрограмм
faSubroutineLeftButton - установить подпрограмму для левой кнопки мыши.
faSubroutineRightButton - установить подпрограмму для правой кнопки мыши.
faSubroutineMiddleButton - установить подпрограмму для средней кнопки мыши.
faSubroutineWhell - установить подпрограмму для колесика мыши.

Информация о настройках мыши
faIsMouseInstalled - проверить установлена ли мышь, если true - установлена, если false - не установлена.
faIsWheelMountedMouse - проверить есть ли колёсико у мыши, если true - колёсико есть, если false - колёсика нет.
faGetNumberButtonsMouse - получить количество кнопок мыши, вернет количество кнопок, если 0 - мышь не установлена.
faCheckButtonsReassigned - проверить переназначены ли кнопки мыши, tсли true - переназначены (для левши), false - не переназначены (для правши).
faGetWhellScrolllines - получить количество строк для прокрутки колесика мыши, значение по умолчанию - 3.

С помощью плагина можно получить информацию о кнопках и колесике мыши: они записываются в переменную [faMouseButton], события такие: LEFT_DOWN, LEFT_UP, RIGHT_DOWN, RIGHT_UP, MIDDLE_DOWN, MIDDLE_UP, WHEEL. Различается направление прокрутки колесика, событие сохраняется в переменную [faMouseWheel], их два: WHEEL_FORWARD, WHEEL_BACKWARD. В переменную [faMouseWhellScroll] записывается цифра соответствующая прокрутке колесика.

Имеются дополнительные опциональные возможности получения некоторых данных. Они записываются в следующие переменные:
[faMouseX] и [faMouseY] - координаты мыши,
[faHandleClick] и [faHandleMove] - значение хэндла того объекта, на котором был клик левой кнопкой мыши или находится курсор мыши,
[faObjectClassName] - имя класса объекта,
[faObjectCaption] - текст или заголовок окна,
[faObjectLeft], [faObjectRight], [faObjectTop], [faObjectBottom] - координаты объекта,
[faObjectWidth], [faObjectHeight] - размеры объекта,
Переменная [faMouseHookWarning] - предназначена для предупреждающих сообщений.

Команды получения информации о мыши и ее настройках можно получать без установки хука.

Ссылка на плагин версии 1.1 и две демки.

Автор - frolandr
Дата добавления - 06 Июля 2023 в 21:27
ВадимДата: Чт, 06 Июля 2023, 21:45 | Сообщение # 2
Генератор идей
Андрей, большое спасибо за новый плаг! :) thumbs_up

Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеАндрей, большое спасибо за новый плаг! :) thumbs_up

Автор - Вадим
Дата добавления - 06 Июля 2023 в 21:45
mishemДата: Чт, 06 Июля 2023, 21:47 | Сообщение # 3
Эксперт форума
Можно еще добавить цвет пикселя под курсором. И все это только не при клике, а при движении мыши. Кликом можно будет получить уже из любого объекта необук, ну почти из любого. :)

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеМожно еще добавить цвет пикселя под курсором. И все это только не при клике, а при движении мыши. Кликом можно будет получить уже из любого объекта необук, ну почти из любого. :)

Автор - mishem
Дата добавления - 06 Июля 2023 в 21:47
frolandrДата: Пт, 07 Июля 2023, 12:30 | Сообщение # 4
Участник
Вот с небольшими обновлениями.

Добавлено (07 Июля 2023, 12:33)
---------------------------------------------
Добавил координаты мыши, координаты левого верхнего угла объекта и координаты правого нижнего угла. По этим координатам рассчитываются размеры объекта, то бишь прямоугольник. Хендл можно получить и при попадании мыши на объект, так и кликом, думаю оба нужны. Добавил еще заголовок окна, если навести на окно. mishem, пока не знаю в чем разница в хендлах, у меня наверное число в шестнадцатеричном формате у Петера наверное в десятеричном, потом посмотрим. Вечером продолжу.

Добавлено (07 Июля 2023, 12:39)
---------------------------------------------
Хук на весь дисплей, по этому он читает заголовки и др. данные со всего экрана. Поводите по панали задач, он и кнопку Пуск читает и часы и т.д.

 
СообщениеВот с небольшими обновлениями.

Добавлено (07 Июля 2023, 12:33)
---------------------------------------------
Добавил координаты мыши, координаты левого верхнего угла объекта и координаты правого нижнего угла. По этим координатам рассчитываются размеры объекта, то бишь прямоугольник. Хендл можно получить и при попадании мыши на объект, так и кликом, думаю оба нужны. Добавил еще заголовок окна, если навести на окно. mishem, пока не знаю в чем разница в хендлах, у меня наверное число в шестнадцатеричном формате у Петера наверное в десятеричном, потом посмотрим. Вечером продолжу.

Добавлено (07 Июля 2023, 12:39)
---------------------------------------------
Хук на весь дисплей, по этому он читает заголовки и др. данные со всего экрана. Поводите по панали задач, он и кнопку Пуск читает и часы и т.д.


Автор - frolandr
Дата добавления - 07 Июля 2023 в 12:30
ВадимДата: Пт, 07 Июля 2023, 12:48 | Сообщение # 5
Генератор идей
Цитата frolandr ()
Вот с небольшими обновлениями.
Спасибо!!! thumbs_up
В первом посте ещё тоже ссылку на свежую предлагаю менять thumbs_up , чтобы с первого поста всегда можно было самую последнюю версию взять.

Добавлено (07 Июля 2023, 13:01)
---------------------------------------------
Работает отлично! Удобно, что есть возможность получить хендл и объекта по которому сделан клик и в движении! Передача размеров объекта плагином, даже за пределами окна приложения – круто!!! thumbs_up thumbs_up thumbs_up

Добавлено (07 Июля 2023, 13:03)
---------------------------------------------
Формат хендла да, надо проверить, чтобы можно было из плагина в плагин передавать без проблем.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата frolandr ()
Вот с небольшими обновлениями.
Спасибо!!! thumbs_up
В первом посте ещё тоже ссылку на свежую предлагаю менять thumbs_up , чтобы с первого поста всегда можно было самую последнюю версию взять.

Добавлено (07 Июля 2023, 13:01)
---------------------------------------------
Работает отлично! Удобно, что есть возможность получить хендл и объекта по которому сделан клик и в движении! Передача размеров объекта плагином, даже за пределами окна приложения – круто!!! thumbs_up thumbs_up thumbs_up

Добавлено (07 Июля 2023, 13:03)
---------------------------------------------
Формат хендла да, надо проверить, чтобы можно было из плагина в плагин передавать без проблем.


Автор - Вадим
Дата добавления - 07 Июля 2023 в 12:48
frolandrДата: Пт, 07 Июля 2023, 17:39 | Сообщение # 6
Участник
Ссылка

Обработку колесика мыши добавил: MOUSE_WHEEL
Класс объекта добавил, думаю полезная вещь.
Хендлы привел в десятеричное число, как у НЕО.

Цвет пикселя под мышью почему-то не корректно определяет, только в заголовке программы и в Виндовс :) иногда влевой части программы, посмотрю позже.

Пробовал узнавать виден объект или нет, активен или нет. Не работает почему-то все время true показывает, даже если скрываю объект или делаю не активным.

Ну это все что я знал и что уже делал в плагине SnapShot для создания скриншотов. Для получения других данных нужно функции из интернета тянуть.

Добавлено (07 Июля 2023, 17:41)
---------------------------------------------
Цитата Вадим ()
В первом посте ещё тоже ссылку на свежую предлагаю менять

Понял, там тоже изменил.

Добавлено (07 Июля 2023, 17:52)
---------------------------------------------
Кстати, сейчас заметил фризы, двигаю мышкой по программе, она подтормаживает. Мышкой перемещаю окно, оно тоже скачками движется. Возможно уже параметров много вытаскиваю, возможно какая то одна функция тормозит.


Сообщение отредактировано
frolandr - Пт, 07 Июля 2023, 17:53
 
СообщениеСсылка

Обработку колесика мыши добавил: MOUSE_WHEEL
Класс объекта добавил, думаю полезная вещь.
Хендлы привел в десятеричное число, как у НЕО.

Цвет пикселя под мышью почему-то не корректно определяет, только в заголовке программы и в Виндовс :) иногда влевой части программы, посмотрю позже.

Пробовал узнавать виден объект или нет, активен или нет. Не работает почему-то все время true показывает, даже если скрываю объект или делаю не активным.

Ну это все что я знал и что уже делал в плагине SnapShot для создания скриншотов. Для получения других данных нужно функции из интернета тянуть.

Добавлено (07 Июля 2023, 17:41)
---------------------------------------------
Цитата Вадим ()
В первом посте ещё тоже ссылку на свежую предлагаю менять

Понял, там тоже изменил.

Добавлено (07 Июля 2023, 17:52)
---------------------------------------------
Кстати, сейчас заметил фризы, двигаю мышкой по программе, она подтормаживает. Мышкой перемещаю окно, оно тоже скачками движется. Возможно уже параметров много вытаскиваю, возможно какая то одна функция тормозит.

Автор - frolandr
Дата добавления - 07 Июля 2023 в 17:39
mishemДата: Пт, 07 Июля 2023, 17:59 | Сообщение # 7
Эксперт форума
Цитата frolandr ()
Кстати, сейчас заметил фризы, двигаю мышкой по программе, она подтормаживает. Мышкой перемещаю окно, оно тоже скачками движется.

Отладчик сверни. Не забывай тестировать в скомпилированном варианте.

Цитата frolandr ()
Возможно уже параметров много вытаскиваю,

Передаешь в окно. Нужно делать выбор параметров. Большинство будут нужны в редких случаях. В основном клики и координаты мыши. Подпрограмма нужна край.

Добавлено (07 Июля 2023, 18:05)
---------------------------------------------
При удалении хука все переменные остаются. По хорошему должны удаляться, но нужно подумать, что лучше. Оставить или удалять..


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
Кстати, сейчас заметил фризы, двигаю мышкой по программе, она подтормаживает. Мышкой перемещаю окно, оно тоже скачками движется.

Отладчик сверни. Не забывай тестировать в скомпилированном варианте.

Цитата frolandr ()
Возможно уже параметров много вытаскиваю,

Передаешь в окно. Нужно делать выбор параметров. Большинство будут нужны в редких случаях. В основном клики и координаты мыши. Подпрограмма нужна край.

Добавлено (07 Июля 2023, 18:05)
---------------------------------------------
При удалении хука все переменные остаются. По хорошему должны удаляться, но нужно подумать, что лучше. Оставить или удалять..

Автор - mishem
Дата добавления - 07 Июля 2023 в 17:59
frolandrДата: Пт, 07 Июля 2023, 18:27 | Сообщение # 8
Участник
Цитата mishem ()
Отладчик сверни. Не забывай тестировать в скомпилированном варианте.

Ок.

Цитата mishem ()
Передаешь в окно. Нужно делать выбор параметров. Большинство будут нужны в редких случаях. В основном клики и координаты мыши. Подпрограмма нужна край.

Окном настроек пока не занимался. Не известно какие параметры и сколько будет, каждый раз изменять окно не удобно.
Подключение подпрограммы тоже пока не пробовал. Кстати, а на что ее вешать если что? На событие мыши, типа MouseDown?

Цитата mishem ()
При удалении хука все переменные остаются. По хорошему должны удаляться, но нужно подумать, что лучше. Оставить или удалять..

Тоже задавался этим вопросом, но это дело 3 минут, главное решить, удалять или нет содержимое. Скорее удалять, ведь если хук удаляем, то и данные в переменных не нужны, их можно и средствами НЕО в другие переписать если что.


Сообщение отредактировано
frolandr - Пт, 07 Июля 2023, 18:32
 
Сообщение
Цитата mishem ()
Отладчик сверни. Не забывай тестировать в скомпилированном варианте.

Ок.

Цитата mishem ()
Передаешь в окно. Нужно делать выбор параметров. Большинство будут нужны в редких случаях. В основном клики и координаты мыши. Подпрограмма нужна край.

Окном настроек пока не занимался. Не известно какие параметры и сколько будет, каждый раз изменять окно не удобно.
Подключение подпрограммы тоже пока не пробовал. Кстати, а на что ее вешать если что? На событие мыши, типа MouseDown?

Цитата mishem ()
При удалении хука все переменные остаются. По хорошему должны удаляться, но нужно подумать, что лучше. Оставить или удалять..

Тоже задавался этим вопросом, но это дело 3 минут, главное решить, удалять или нет содержимое. Скорее удалять, ведь если хук удаляем, то и данные в переменных не нужны, их можно и средствами НЕО в другие переписать если что.

Автор - frolandr
Дата добавления - 07 Июля 2023 в 18:27
mishemДата: Пт, 07 Июля 2023, 18:35 | Сообщение # 9
Эксперт форума
Цитата frolandr ()
Кстати, а на что ее вешать если что?

Или на все события скопом, а в подпрограмме уже условия писать, или для каждого события отдельную подпрограмму.

Разберись сначала. Что осилишь, то и делай. Со временем, как опыта наберешься, подправишь если что.

Цитата frolandr ()
Скорее удалять, ведь если хук удаляем, то и данные в переменных не нужны, их можно и средствами НЕО в другие переписать если что.

Я тоже к этому склоняюсь. Но опять, можно как вариант в настройках чекбоксом организовать. По умолчанию удалять, а если кому надо, чекбокс отметил и не будут удаляться.

Добавлено (07 Июля 2023, 18:45)
---------------------------------------------

Цитата mishem ()
Или на все события скопом

На смену координат естественно нет смысла, а вот на клики, на хэндл, на заголовок подпрограмма нужна. Можно одну на все. И опять же с выбором, как у Петра к примеру. Не стесняйся оттуда что то заимствовать. Челоек не один день потратил на решение вопросов. Зачем изобретать велосипед?

Добавлено (07 Июля 2023, 18:52)
---------------------------------------------

Цитата frolandr ()
Обработку колесика мыши добавил: MOUSE_WHEEL

Не годится. :(

Раз крутнул и в переменной постоянно MOUSE_WHEEL.
А куда крутнул? Сколько крутнул? Я еще удивился что так быстро. Петр с месяц наверно бился, но так по моему до конца и не осилил. Где то тема обсуждения даже есть.

Если не осилишь, клик просто организуй средней кнопкой. Желательно еще и дополниельные было бы подключить, но там по моему засада есть. Сейчас уже не вспомню.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
Кстати, а на что ее вешать если что?

Или на все события скопом, а в подпрограмме уже условия писать, или для каждого события отдельную подпрограмму.

Разберись сначала. Что осилишь, то и делай. Со временем, как опыта наберешься, подправишь если что.

Цитата frolandr ()
Скорее удалять, ведь если хук удаляем, то и данные в переменных не нужны, их можно и средствами НЕО в другие переписать если что.

Я тоже к этому склоняюсь. Но опять, можно как вариант в настройках чекбоксом организовать. По умолчанию удалять, а если кому надо, чекбокс отметил и не будут удаляться.

Добавлено (07 Июля 2023, 18:45)
---------------------------------------------

Цитата mishem ()
Или на все события скопом

На смену координат естественно нет смысла, а вот на клики, на хэндл, на заголовок подпрограмма нужна. Можно одну на все. И опять же с выбором, как у Петра к примеру. Не стесняйся оттуда что то заимствовать. Челоек не один день потратил на решение вопросов. Зачем изобретать велосипед?

Добавлено (07 Июля 2023, 18:52)
---------------------------------------------

Цитата frolandr ()
Обработку колесика мыши добавил: MOUSE_WHEEL

Не годится. :(

Раз крутнул и в переменной постоянно MOUSE_WHEEL.
А куда крутнул? Сколько крутнул? Я еще удивился что так быстро. Петр с месяц наверно бился, но так по моему до конца и не осилил. Где то тема обсуждения даже есть.

Если не осилишь, клик просто организуй средней кнопкой. Желательно еще и дополниельные было бы подключить, но там по моему засада есть. Сейчас уже не вспомню.

Автор - mishem
Дата добавления - 07 Июля 2023 в 18:35
frolandrДата: Пт, 07 Июля 2023, 20:00 | Сообщение # 10
Участник
Цитата mishem ()
Раз крутнул и в переменной постоянно MOUSE_WHEEL.

В этой функции нет распознавания куда и сколько, верно за пару дней многого не сделать.

В догонку(ссылку пока не даю, исправлю сначала кое-что):

Добавил реакцию на среднюю кнопку, нажата(MIDDLE_DOWN), отпущена(MIDDLE_UP).

С получением цвета разобрался. Все дело в том, что у меня в параметрах экрана стоит Масштаб 125%. Масштаб можно менять с Виндовс 8,1 вроде бы(обычно это 100, 125, 150 и 175%) в связи с этим точка получения координат была не верная. Уже сталкивался с этим при создании скриншотов. Сейчас сделал, чтобы добавлялся масштаб. Однако не все так радужно с определением цвета пикселя. Цвет можно получить не на всех объектах. На кнопке не получается, на Эдит, Лейбле, окне - все ок, даже цвет бордюра. Навел на рабочий стол виндовс, показывает один и тот же цвет, по видимому он не цвет картинки рабочего стола показывает, а цвет под ней, если ее убрать с рабочего стола. Ну или другую функцию нужно применять, получать канвас может окна, пока так.

В связи с тем, что в современных Виндовс имеется изменение масштаба, не верно показывает размеры всего экрана(это я сделаю), но вот координаты мыши почему то показывает верно %) !!!

Во многом еще нужно разбираться, но вот то, что идут фризы даже на скомпилированном проекте - это факт. Видимо все же постоянное извлечение координат, извлечение цвета и пр. дают о себе знать. Если бы это все было повешено на КЛИК, а не на ДВИЖЕНИЕ мыши, думаю дерганий бы не было.
 
Сообщение
Цитата mishem ()
Раз крутнул и в переменной постоянно MOUSE_WHEEL.

В этой функции нет распознавания куда и сколько, верно за пару дней многого не сделать.

В догонку(ссылку пока не даю, исправлю сначала кое-что):

Добавил реакцию на среднюю кнопку, нажата(MIDDLE_DOWN), отпущена(MIDDLE_UP).

С получением цвета разобрался. Все дело в том, что у меня в параметрах экрана стоит Масштаб 125%. Масштаб можно менять с Виндовс 8,1 вроде бы(обычно это 100, 125, 150 и 175%) в связи с этим точка получения координат была не верная. Уже сталкивался с этим при создании скриншотов. Сейчас сделал, чтобы добавлялся масштаб. Однако не все так радужно с определением цвета пикселя. Цвет можно получить не на всех объектах. На кнопке не получается, на Эдит, Лейбле, окне - все ок, даже цвет бордюра. Навел на рабочий стол виндовс, показывает один и тот же цвет, по видимому он не цвет картинки рабочего стола показывает, а цвет под ней, если ее убрать с рабочего стола. Ну или другую функцию нужно применять, получать канвас может окна, пока так.

В связи с тем, что в современных Виндовс имеется изменение масштаба, не верно показывает размеры всего экрана(это я сделаю), но вот координаты мыши почему то показывает верно %) !!!

Во многом еще нужно разбираться, но вот то, что идут фризы даже на скомпилированном проекте - это факт. Видимо все же постоянное извлечение координат, извлечение цвета и пр. дают о себе знать. Если бы это все было повешено на КЛИК, а не на ДВИЖЕНИЕ мыши, думаю дерганий бы не было.

Автор - frolandr
Дата добавления - 07 Июля 2023 в 20:00
mishemДата: Пт, 07 Июля 2023, 20:57 | Сообщение # 11
Эксперт форума
Цитата frolandr ()
Видимо все же постоянное извлечение координат, извлечение цвета и пр. дают о себе знать.

Сомневаюсь. Бери как пример плагин Петра. Хотя у него глобальный хук с новыми версиями винды перестал работать. Но пока работал, проблем не было.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
Видимо все же постоянное извлечение координат, извлечение цвета и пр. дают о себе знать.

Сомневаюсь. Бери как пример плагин Петра. Хотя у него глобальный хук с новыми версиями винды перестал работать. Но пока работал, проблем не было.

Автор - mishem
Дата добавления - 07 Июля 2023 в 20:57
frolandrДата: Сб, 08 Июля 2023, 13:03 | Сообщение # 12
Участник
Забыл написать, теперь обновленные версии, по ссылке в первом посте.

Вчера сделал помощник для создания хука. Пока доступны 6 параметров. Сделал через ComboBox, а не через CheckBox. Так как комбо уже написан был, а чекбок писать нужно. В общем, можно потестить уже. Остальные параметры буду добавлять постепенно, по мере проверки и осмыслении их правильности работы.

В обработку мыши добавил еще: MOUSE_MOVE
Даже не знаю нужен ли? Срабатывает каждый раз при движении мыши. Напишите нужен или нет?


Сообщение отредактировано
frolandr - Сб, 08 Июля 2023, 13:14
 
СообщениеЗабыл написать, теперь обновленные версии, по ссылке в первом посте.

Вчера сделал помощник для создания хука. Пока доступны 6 параметров. Сделал через ComboBox, а не через CheckBox. Так как комбо уже написан был, а чекбок писать нужно. В общем, можно потестить уже. Остальные параметры буду добавлять постепенно, по мере проверки и осмыслении их правильности работы.

В обработку мыши добавил еще: MOUSE_MOVE
Даже не знаю нужен ли? Срабатывает каждый раз при движении мыши. Напишите нужен или нет?

Автор - frolandr
Дата добавления - 08 Июля 2023 в 13:03
mishemДата: Сб, 08 Июля 2023, 14:51 | Сообщение # 13
Эксперт форума
Цитата frolandr ()
В общем, можно потестить уже.

1. При вызове окна двойным кликом по команде не заполняются поля теми значениями которые были.
2. Или значения по умолчанию должны уже стоять в комбобксах, или делать проверку, и если значение пустое, устанавливать значение по умолчанию. Иначе при пустых значениях вываливается ошибка.
3. Вопросы можно убрать. Получать данные о кнопках мыши? = true равнозначно Получать данные о кнопках мыши. = true. Я бы наверно выделил блоком и написал Выводить информацию:, а далее Действия кнопок мыши, Координаты мыши, Дескриптор окна\Объекта, Класс объекта, Координаты и размер объекта, Текст заголовка Окна\Объекта.
4. И все же на мой взгляд чекбоксы лучше. И быстрее выбирать, и тебе обработку делать проще. ИМХО.

Добавлено (08 Июля 2023, 14:52)
---------------------------------------------

Цитата frolandr ()
Напишите нужен или нет?

Раз уже сделал, пусть будет.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
В общем, можно потестить уже.

1. При вызове окна двойным кликом по команде не заполняются поля теми значениями которые были.
2. Или значения по умолчанию должны уже стоять в комбобксах, или делать проверку, и если значение пустое, устанавливать значение по умолчанию. Иначе при пустых значениях вываливается ошибка.
3. Вопросы можно убрать. Получать данные о кнопках мыши? = true равнозначно Получать данные о кнопках мыши. = true. Я бы наверно выделил блоком и написал Выводить информацию:, а далее Действия кнопок мыши, Координаты мыши, Дескриптор окна\Объекта, Класс объекта, Координаты и размер объекта, Текст заголовка Окна\Объекта.
4. И все же на мой взгляд чекбоксы лучше. И быстрее выбирать, и тебе обработку делать проще. ИМХО.

Добавлено (08 Июля 2023, 14:52)
---------------------------------------------

Цитата frolandr ()
Напишите нужен или нет?

Раз уже сделал, пусть будет.

Автор - mishem
Дата добавления - 08 Июля 2023 в 14:51
frolandrДата: Сб, 08 Июля 2023, 17:24 | Сообщение # 14
Участник
Обновил. Блин возможно некоторые пред. разы я не те тесты выкладывал. На компе 3 диска, и все с кучей папок по тестам того или иного плагина.

Возможно не ту версию скинул, не доработанную.
Комбобоксы были пустые, я для переменных готовил, ну там когда кнопочкой выбираешь переменную.
Переделал на ЧекБоксы, но в этом случае лишаемся автоматического добавления переменных.
 
СообщениеОбновил. Блин возможно некоторые пред. разы я не те тесты выкладывал. На компе 3 диска, и все с кучей папок по тестам того или иного плагина.

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

Автор - frolandr
Дата добавления - 08 Июля 2023 в 17:24
mishemДата: Сб, 08 Июля 2023, 17:57 | Сообщение # 15
Эксперт форума
Цитата frolandr ()
пред. разы я не те тесты выкладывал.

Да. Но это не мешало тестить. :)

Цитата mishem ()
1. При вызове окна двойным кликом по команде не заполняются поля теми значениями которые были.

Если была переменная, заменяется значением. В дальнейшем в работе, будет напрягать и будут из за этого ошибки не предвиденные.

Самое проблематичное, делать защиту от "дурака".

Цитата frolandr ()
Переделал на ЧекБоксы, но в этом случае лишаемся автоматического добавления переменных.

Делай не чекбоксы, делай поля ввода. В прверке если значение пустое, не Fаflse и не переменная, то True.
Или если значение не пустое, не Fаflse, не True, и не начинается с [ и не заканчивается ], то обернуть в []. Наверно это самый лучший и удобный для пользователя вариант. Но не для тебя. :)

Добавлено (08 Июля 2023, 18:00)
---------------------------------------------

Цитата mishem ()
Или если значение не пустое, не Fаflse, не True

Можешь добавить еще 0\1 = Fаflse\True, для ускоренного ввода значений. Код у тебя по идее должен так же принимать 0\1 как Fаflse\True.

Добавлено (08 Июля 2023, 18:03)
---------------------------------------------

Цитата mishem ()
Делай не чекбоксы

Можешь радиогруппу сделать и рядом поле ввода для переменной. Голь на выдумки сильна. Вариантов море. :) Было бы желание...

Добавлено (08 Июля 2023, 18:07)
---------------------------------------------
Блин, этот плагин расширяет возможности... Привыкнишь, без него будешь как без рук...

Добавлено (08 Июля 2023, 18:09)
---------------------------------------------
Ты этот плагин через хук делаешь, или готовыми функциями?


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
пред. разы я не те тесты выкладывал.

Да. Но это не мешало тестить. :)

Цитата mishem ()
1. При вызове окна двойным кликом по команде не заполняются поля теми значениями которые были.

Если была переменная, заменяется значением. В дальнейшем в работе, будет напрягать и будут из за этого ошибки не предвиденные.

Самое проблематичное, делать защиту от "дурака".

Цитата frolandr ()
Переделал на ЧекБоксы, но в этом случае лишаемся автоматического добавления переменных.

Делай не чекбоксы, делай поля ввода. В прверке если значение пустое, не Fаflse и не переменная, то True.
Или если значение не пустое, не Fаflse, не True, и не начинается с [ и не заканчивается ], то обернуть в []. Наверно это самый лучший и удобный для пользователя вариант. Но не для тебя. :)

Добавлено (08 Июля 2023, 18:00)
---------------------------------------------

Цитата mishem ()
Или если значение не пустое, не Fаflse, не True

Можешь добавить еще 0\1 = Fаflse\True, для ускоренного ввода значений. Код у тебя по идее должен так же принимать 0\1 как Fаflse\True.

Добавлено (08 Июля 2023, 18:03)
---------------------------------------------

Цитата mishem ()
Делай не чекбоксы

Можешь радиогруппу сделать и рядом поле ввода для переменной. Голь на выдумки сильна. Вариантов море. :) Было бы желание...

Добавлено (08 Июля 2023, 18:07)
---------------------------------------------
Блин, этот плагин расширяет возможности... Привыкнишь, без него будешь как без рук...

Добавлено (08 Июля 2023, 18:09)
---------------------------------------------
Ты этот плагин через хук делаешь, или готовыми функциями?


Автор - mishem
Дата добавления - 08 Июля 2023 в 17:57
frolandrДата: Сб, 08 Июля 2023, 19:01 | Сообщение # 16
Участник
Скачай Спин Едит
Там команда faSpinEditSettings, в ней первое и третье поле сделано через Едит, а второе(среднее) через КомбоБокс, что и в этом плагине сначала делал.
Проверь, у тебя выбор работает?, функцию вставь посмотри. Мне кажется КомбоБокс идеальное поле. Мы с Андреем обсуждали эти вопросы. Я в другом плагине Трекбаром сделал выбор качества сохранения скриншота. Так вот там переменную тоже не привяжешь. Он сначала запутался, думал можно переменную в трекбар передать. Я два дня голову ломал, и все таки мы поняли, что не возможно привязать переменную, она ПУСТАЯ, до того времени пока программу не запустишь. Т.е. в окне помощника она ПУСТАЯ.
Посмотри вот плагин по ссылке, напиши, работает у тебя о том, что писал выше. Если да, то только через Комбобокс делать. там и выбрать можно и переменную вставить.

Добавлено (08 Июля 2023, 19:03)
---------------------------------------------
Цитата mishem ()
Можешь добавить еще 0\1 = Fаflse\True, для ускоренного ввода значений. Код у тебя по идее должен так же принимать 0\1 как Fаflse\True.

Да хоть по-русски пиши, тоже примет, в СпинЕдит тоже по-русски сделал сдуру, это конечно не правильно, кодировка у кого то может не пройти.

Добавлено (08 Июля 2023, 19:09)
---------------------------------------------
Цитата frolandr ()
Ты этот плагин через хук делаешь, или готовыми функциями?

Сначала хук ставится на все события мыши, а затем там где срабатывает "движение", там уже функции извлечения данных.
Вот к примеру, все время писал так, для получения координат курсора мыши:
Код
TPoint P;
GetCursorPos(&P);
((int)P.x); - координата X
((int)P.y); - координата Y

Только вчера вечером понял, что она не верно получает координаты, все из-за того, что с Виндовс 8,1 можно менять масштаб. По этому у меня и цвет сначала не в тех местах извлекался.
Теперь вот переделал на:
Код
MSLLHOOKSTRUCT *ptr = (MSLLHOOKSTRUCT*)lParam;
((int)ptr->pt.x);
((int)ptr->pt.y);


Нашел в интернете, не когда так не писал.


Сообщение отредактировано
frolandr - Сб, 08 Июля 2023, 19:37
 
СообщениеСкачай Спин Едит
Там команда faSpinEditSettings, в ней первое и третье поле сделано через Едит, а второе(среднее) через КомбоБокс, что и в этом плагине сначала делал.
Проверь, у тебя выбор работает?, функцию вставь посмотри. Мне кажется КомбоБокс идеальное поле. Мы с Андреем обсуждали эти вопросы. Я в другом плагине Трекбаром сделал выбор качества сохранения скриншота. Так вот там переменную тоже не привяжешь. Он сначала запутался, думал можно переменную в трекбар передать. Я два дня голову ломал, и все таки мы поняли, что не возможно привязать переменную, она ПУСТАЯ, до того времени пока программу не запустишь. Т.е. в окне помощника она ПУСТАЯ.
Посмотри вот плагин по ссылке, напиши, работает у тебя о том, что писал выше. Если да, то только через Комбобокс делать. там и выбрать можно и переменную вставить.

Добавлено (08 Июля 2023, 19:03)
---------------------------------------------
Цитата mishem ()
Можешь добавить еще 0\1 = Fаflse\True, для ускоренного ввода значений. Код у тебя по идее должен так же принимать 0\1 как Fаflse\True.

Да хоть по-русски пиши, тоже примет, в СпинЕдит тоже по-русски сделал сдуру, это конечно не правильно, кодировка у кого то может не пройти.

Добавлено (08 Июля 2023, 19:09)
---------------------------------------------
Цитата frolandr ()
Ты этот плагин через хук делаешь, или готовыми функциями?

Сначала хук ставится на все события мыши, а затем там где срабатывает "движение", там уже функции извлечения данных.
Вот к примеру, все время писал так, для получения координат курсора мыши:
Код
TPoint P;
GetCursorPos(&P);
((int)P.x); - координата X
((int)P.y); - координата Y

Только вчера вечером понял, что она не верно получает координаты, все из-за того, что с Виндовс 8,1 можно менять масштаб. По этому у меня и цвет сначала не в тех местах извлекался.
Теперь вот переделал на:
Код
MSLLHOOKSTRUCT *ptr = (MSLLHOOKSTRUCT*)lParam;
((int)ptr->pt.x);
((int)ptr->pt.y);


Нашел в интернете, не когда так не писал.

Автор - frolandr
Дата добавления - 08 Июля 2023 в 19:01
mishemДата: Сб, 08 Июля 2023, 21:35 | Сообщение # 17
Эксперт форума
Цитата frolandr ()
Проверь, у тебя выбор работает?

Работает.

Цитата frolandr ()
Мне кажется КомбоБокс идеальное поле.

На вкус и цвет все фломастеры разные. Мы с Петром давно пришли к выводу, что окна помошника должны максимально быть приближены к формату НБ. Кто то считает по другому. Либо не может этого добиться, либо действительно другого мнения.

Как считаешь нужным, так и делай.

Цитата frolandr ()
что не возможно привязать переменную

Сомневаюсь, но спорить не буду. Пока нет желания устанавливать делфи и поднимать литературу.

Цитата frolandr ()
она ПУСТАЯ, до того времени пока программу не запустишь. Т.е. в окне помощника она ПУСТАЯ.

Так а кто тебе мешает ее запустить вместе с окном? (предположение). Естественно то что в окне и то что после будет в НБ с собой ни как не связаны, но тебе нужно значение, а не совместное использование. В окне работает свой трек бар, в НБ свой. Ты только получаешь значение и передаешь его в переменую нб. После закрытия окна уничтожаешь, или оставляешь (по желанию) трекбар.

Это все чисто теоретически у меня в голове, повторяю, проверить не могу. :(

Цитата frolandr ()
то только через Комбобокс делать. там и выбрать можно и переменную вставить.

Комбобокс удобен тебе, большинству пользователей он будет не удобен. Во первых названия значений в основном идут на английском языке (влом же обращаться к комбобоксу по индексу :)) Во всяком случае в основном это именно так. А если будешь писать обработку, то это тебе лишняя головная боль. А оно надо? (это то что у тебя в голове появится).
Во вторых, если комбобокс как в первом варианте был (true\false), то чем он отличается от текстового поля? Если в комбо перечислять параметры, то куда переменные писать? Опять обработка... И т.д. и т.п.
По этому говорю, делай как считаешь правильно.

Для себя проще делать, для людей нужно вырабатывать определенные правила.

Есть много хороших плагинов, но люди ими не пользуются, потому что не удобно. Есть много удобных плагинов, но я к примеру ими не пользуюсь, потому что они глючные. А есть идеальные плагины.

Вот и решай, что именно ты хочешь сделать. :)

Цитата frolandr ()
Вот к примеру, все время писал так

Я сейчас уже не помню, там несколько вариантов есть. Не могу просто понять, почему окно переодически подвисает. Что то у тебя в коде его тормозит. Может вычисления, может цикл, может таймер.. Если сделано через цикл, попробуй сделать через таймер. Если через таймер, попробуй увеличить задержку таймера. Там слишком маленька частота обновления не нужна. А 10 и 100 милсек. играют огромную разницу на нагрузку процессора.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
Проверь, у тебя выбор работает?

Работает.

Цитата frolandr ()
Мне кажется КомбоБокс идеальное поле.

На вкус и цвет все фломастеры разные. Мы с Петром давно пришли к выводу, что окна помошника должны максимально быть приближены к формату НБ. Кто то считает по другому. Либо не может этого добиться, либо действительно другого мнения.

Как считаешь нужным, так и делай.

Цитата frolandr ()
что не возможно привязать переменную

Сомневаюсь, но спорить не буду. Пока нет желания устанавливать делфи и поднимать литературу.

Цитата frolandr ()
она ПУСТАЯ, до того времени пока программу не запустишь. Т.е. в окне помощника она ПУСТАЯ.

Так а кто тебе мешает ее запустить вместе с окном? (предположение). Естественно то что в окне и то что после будет в НБ с собой ни как не связаны, но тебе нужно значение, а не совместное использование. В окне работает свой трек бар, в НБ свой. Ты только получаешь значение и передаешь его в переменую нб. После закрытия окна уничтожаешь, или оставляешь (по желанию) трекбар.

Это все чисто теоретически у меня в голове, повторяю, проверить не могу. :(

Цитата frolandr ()
то только через Комбобокс делать. там и выбрать можно и переменную вставить.

Комбобокс удобен тебе, большинству пользователей он будет не удобен. Во первых названия значений в основном идут на английском языке (влом же обращаться к комбобоксу по индексу :)) Во всяком случае в основном это именно так. А если будешь писать обработку, то это тебе лишняя головная боль. А оно надо? (это то что у тебя в голове появится).
Во вторых, если комбобокс как в первом варианте был (true\false), то чем он отличается от текстового поля? Если в комбо перечислять параметры, то куда переменные писать? Опять обработка... И т.д. и т.п.
По этому говорю, делай как считаешь правильно.

Для себя проще делать, для людей нужно вырабатывать определенные правила.

Есть много хороших плагинов, но люди ими не пользуются, потому что не удобно. Есть много удобных плагинов, но я к примеру ими не пользуюсь, потому что они глючные. А есть идеальные плагины.

Вот и решай, что именно ты хочешь сделать. :)

Цитата frolandr ()
Вот к примеру, все время писал так

Я сейчас уже не помню, там несколько вариантов есть. Не могу просто понять, почему окно переодически подвисает. Что то у тебя в коде его тормозит. Может вычисления, может цикл, может таймер.. Если сделано через цикл, попробуй сделать через таймер. Если через таймер, попробуй увеличить задержку таймера. Там слишком маленька частота обновления не нужна. А 10 и 100 милсек. играют огромную разницу на нагрузку процессора.

Автор - mishem
Дата добавления - 08 Июля 2023 в 21:35
frolandrДата: Вс, 09 Июля 2023, 00:16 | Сообщение # 18
Участник
Цитата mishem ()
Работает.

Значит ошибка была в этом.

Цитата mishem ()
На вкус и цвет все фломастеры разные. Мы с Петром давно пришли к выводу, что окна помошника должны максимально быть приближены к формату НБ. Кто то считает по другому. Либо не может этого добиться, либо действительно другого мнения.

Считаю, что максимально приближены должны быть к родным НЕО. Чтобы привычно был, но и должно быть что-то свое, я вот голубую клетку добавляю, как на тетрадном листе. Другое дело, что я вот даже не знаю похожи мои окна или нет. Я пользуюсь Виндовс, с темой от одного человека, была у меня раньше от него 8,1, позже 10 и сейчас на всех трех SSD стоит 11 версия, грузится после включения пинания она не больше 5-10 сек.

Цитата mishem ()
Так а кто тебе мешает ее запустить вместе с окном? (предположение).

Окно мы пишем в плагине, это фактически dll, когда редактируем команду, можем получить из НЕО информацию о компонентах, в частности ИМЕНАХ прямоугольников, о ИМЕНАХ переменных, о ИМЕНАХ подпрограмм. Написал ИМЕНА с большой буквы, потому, что в плагине мы знаем только эти имена, мы не знаем, что в них. Все эти переменные создаются и инициализуруются только во время запуска программы написанной в НЕО. Фактически для плагина все переменные из НЕО это лишь строки. Я даже думал, что фактически можно получить значение, но только прочитав файл публикации и где-то в нем найти имя переменной и присвоенное ей значение. Вот смотри мы иногда в данный момент времени даже не знаем, что есть в переменной, к примеру код:
if (условие)
переменная abc=1
else
переменная абс=0
Только в момент начала работы программы или когда поток задач дойдет до этого кода мы можем узнать каково будет значение этой abc
Когда дело в работающей программе дойдет до команды плагина, тогда можно получить значение этой переменной.

Цитата mishem ()
Комбобокс удобен тебе, большинству пользователей он будет не удобен. Во первых названия значений в основном идут на английском языке (влом же обращаться к комбобоксу по индексу :))

В основном в плагинах данные через Едит или КомбоБокс передаются. Они удобны, потому, что в них можно вписать имя переменной. Ну можно еще пару компонентов найти, ЛейбеЕдит, ну это как бы комбинация Едит уже с надписью.
Сам видел, не в чекбокс не в радиобаттон, не в трекбар не вписать переменную. Если рядом с ними добавить Едит это тоже не выход. К примеру есть чекбокс, а для переменной поле Эдит, кто главнее? Мы знаем, что переменная в окне ПУСТАЯ. Т.е пишешь ты в перемунную тру(TRUE), а чекбокс не выбран. Когда сохранишь команду, а затем двойным кликом решишь ее редактировать, то чекбокс также будет не выбран! Вспомни переменная ПУСТАЯ! Это все введет в заблуждение. Я два дня с Трекбаром так мучался.
Я не утверждаю на 100%, если есть у кого рабочий код, то буду только рад, к трекбару привязать переменную :)
 
Сообщение
Цитата mishem ()
Работает.

Значит ошибка была в этом.

Цитата mishem ()
На вкус и цвет все фломастеры разные. Мы с Петром давно пришли к выводу, что окна помошника должны максимально быть приближены к формату НБ. Кто то считает по другому. Либо не может этого добиться, либо действительно другого мнения.

Считаю, что максимально приближены должны быть к родным НЕО. Чтобы привычно был, но и должно быть что-то свое, я вот голубую клетку добавляю, как на тетрадном листе. Другое дело, что я вот даже не знаю похожи мои окна или нет. Я пользуюсь Виндовс, с темой от одного человека, была у меня раньше от него 8,1, позже 10 и сейчас на всех трех SSD стоит 11 версия, грузится после включения пинания она не больше 5-10 сек.

Цитата mishem ()
Так а кто тебе мешает ее запустить вместе с окном? (предположение).

Окно мы пишем в плагине, это фактически dll, когда редактируем команду, можем получить из НЕО информацию о компонентах, в частности ИМЕНАХ прямоугольников, о ИМЕНАХ переменных, о ИМЕНАХ подпрограмм. Написал ИМЕНА с большой буквы, потому, что в плагине мы знаем только эти имена, мы не знаем, что в них. Все эти переменные создаются и инициализуруются только во время запуска программы написанной в НЕО. Фактически для плагина все переменные из НЕО это лишь строки. Я даже думал, что фактически можно получить значение, но только прочитав файл публикации и где-то в нем найти имя переменной и присвоенное ей значение. Вот смотри мы иногда в данный момент времени даже не знаем, что есть в переменной, к примеру код:
if (условие)
переменная abc=1
else
переменная абс=0
Только в момент начала работы программы или когда поток задач дойдет до этого кода мы можем узнать каково будет значение этой abc
Когда дело в работающей программе дойдет до команды плагина, тогда можно получить значение этой переменной.

Цитата mishem ()
Комбобокс удобен тебе, большинству пользователей он будет не удобен. Во первых названия значений в основном идут на английском языке (влом же обращаться к комбобоксу по индексу :))

В основном в плагинах данные через Едит или КомбоБокс передаются. Они удобны, потому, что в них можно вписать имя переменной. Ну можно еще пару компонентов найти, ЛейбеЕдит, ну это как бы комбинация Едит уже с надписью.
Сам видел, не в чекбокс не в радиобаттон, не в трекбар не вписать переменную. Если рядом с ними добавить Едит это тоже не выход. К примеру есть чекбокс, а для переменной поле Эдит, кто главнее? Мы знаем, что переменная в окне ПУСТАЯ. Т.е пишешь ты в перемунную тру(TRUE), а чекбокс не выбран. Когда сохранишь команду, а затем двойным кликом решишь ее редактировать, то чекбокс также будет не выбран! Вспомни переменная ПУСТАЯ! Это все введет в заблуждение. Я два дня с Трекбаром так мучался.
Я не утверждаю на 100%, если есть у кого рабочий код, то буду только рад, к трекбару привязать переменную :)

Автор - frolandr
Дата добавления - 09 Июля 2023 в 00:16
mishemДата: Вс, 09 Июля 2023, 00:19 | Сообщение # 19
Эксперт форума
Цитата frolandr ()
она ПУСТАЯ, до того времени пока программу не запустишь.

Посмотрел плагин faSnapShot. Понял о чем ты говоришь. Естественно она пустая. А зачем нужен трек бар, если значение указывается через переменную. Нужно тогда чекбокс делать "Установить значение\выбрать переменную" и прятать при определенном выборе текстовое поле\трекбар. По другому ни как. Даже если переменная ранее предопределена, можно просканировать проект, вычислить значение, но что оно даст? В итоге при закрытии окна все равно будет название переменной. По этому трекбар при выборе переменной совсем ни к чему. Соответственно и выбор переменной при установке значения трекбаром, тоже не нужен.

Добавлено (09 Июля 2023, 00:20)
---------------------------------------------

Цитата frolandr ()
я вот голубую клетку добавляю

Глаза режет. :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
она ПУСТАЯ, до того времени пока программу не запустишь.

Посмотрел плагин faSnapShot. Понял о чем ты говоришь. Естественно она пустая. А зачем нужен трек бар, если значение указывается через переменную. Нужно тогда чекбокс делать "Установить значение\выбрать переменную" и прятать при определенном выборе текстовое поле\трекбар. По другому ни как. Даже если переменная ранее предопределена, можно просканировать проект, вычислить значение, но что оно даст? В итоге при закрытии окна все равно будет название переменной. По этому трекбар при выборе переменной совсем ни к чему. Соответственно и выбор переменной при установке значения трекбаром, тоже не нужен.

Добавлено (09 Июля 2023, 00:20)
---------------------------------------------

Цитата frolandr ()
я вот голубую клетку добавляю

Глаза режет. :)

Автор - mishem
Дата добавления - 09 Июля 2023 в 00:19
frolandrДата: Вс, 09 Июля 2023, 00:24 | Сообщение # 20
Участник
Цитата frolandr ()
Не могу просто понять, почему окно переодически подвисает.

Да, писал тебе об этом.
Нет, там нет не таймера и не одного цикла.
Цикл это сам Хук. т.е. он постоянно в работе, у Петра даже называется монитор мыши, т.е. все в реальном времени.
Я по этому и писал, одно дело повесить на щелчек мыши, другое на движение. Обработки идет в разы меньше.

Работа такая, как только двину мышью получаем событие МаусМув, далее идет проверка нужно ли получать координаты, если да, то выводим, нет проверяем дальше, нужно ли получать Хендл, да, получаем и так 6 значений. Проверю потом, что именно тормозит. НЕО однопоточный, к примеру на JS можно промис создать и делать дальше что угодно, как только промис получит значение он его публикует, работает асинхронно. Ну а НЕО все делает по порядку, ему время на одно, второе и третье нужно.

Проверю вобщем, как только дойду до этого.
 
Сообщение
Цитата frolandr ()
Не могу просто понять, почему окно переодически подвисает.

Да, писал тебе об этом.
Нет, там нет не таймера и не одного цикла.
Цикл это сам Хук. т.е. он постоянно в работе, у Петра даже называется монитор мыши, т.е. все в реальном времени.
Я по этому и писал, одно дело повесить на щелчек мыши, другое на движение. Обработки идет в разы меньше.

Работа такая, как только двину мышью получаем событие МаусМув, далее идет проверка нужно ли получать координаты, если да, то выводим, нет проверяем дальше, нужно ли получать Хендл, да, получаем и так 6 значений. Проверю потом, что именно тормозит. НЕО однопоточный, к примеру на JS можно промис создать и делать дальше что угодно, как только промис получит значение он его публикует, работает асинхронно. Ну а НЕО все делает по порядку, ему время на одно, второе и третье нужно.

Проверю вобщем, как только дойду до этого.

Автор - frolandr
Дата добавления - 09 Июля 2023 в 00:24
mishemДата: Вс, 09 Июля 2023, 00:29 | Сообщение # 21
Эксперт форума
Цитата frolandr ()
но и должно быть что-то свое

Значок, авторство и описание...

Цитата frolandr ()
К примеру есть чекбокс, а для переменной поле Эдит, кто главнее?

Выше написал. Только чекбокс как и радиокнопка нужны для да\нет. Три и более варианта уже комбо едит. Или опять же, как выше написал чекбокс как дополнение к чему то, опять же, для выбора варианта. Так же и радиокнопка может быть для выбора варианта только уже из большего кол-ва.

Цитата frolandr ()
Когда сохранишь команду, а затем двойным кликом решишь ее редактировать, то чекбокс также будет не выбран!

А это уже от тебя зависит, будет он выбран или нет.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
но и должно быть что-то свое

Значок, авторство и описание...

Цитата frolandr ()
К примеру есть чекбокс, а для переменной поле Эдит, кто главнее?

Выше написал. Только чекбокс как и радиокнопка нужны для да\нет. Три и более варианта уже комбо едит. Или опять же, как выше написал чекбокс как дополнение к чему то, опять же, для выбора варианта. Так же и радиокнопка может быть для выбора варианта только уже из большего кол-ва.

Цитата frolandr ()
Когда сохранишь команду, а затем двойным кликом решишь ее редактировать, то чекбокс также будет не выбран!

А это уже от тебя зависит, будет он выбран или нет.

Автор - mishem
Дата добавления - 09 Июля 2023 в 00:29
frolandrДата: Вс, 09 Июля 2023, 00:32 | Сообщение # 22
Участник
Цитата frolandr ()
Посмотрел плагин faSnapShot. Понял о чем ты говоришь. Естественно она пустая. А зачем нужен трек бар, если значение указывается через переменную.

Трек бар оставил потому, что рисовал его целый день :) , высчитывал, там видел цвет числа справа которое, меняется в зависимости от значения. Ну и вроде как для себя делал.

Если даже чекбокс прикручивать, все равно не совсем то будет. Если выбираем переменную в чекбоксе, то значение трекбара на 0 улетит, что тоже не то.

Я согласен, по негласным правилам написания плагинов там нужен Едит и кнопка для выбора переменной.

Добавлено (09 Июля 2023, 00:42)
---------------------------------------------
Цитата mishem ()
А это уже от тебя зависит, будет он выбран или нет.


Ну да, я могу поставить ему Checked, но это же будет не правда. Я же в плагине не могу проверить что у тебя в переменной. Два дня проверял по разному, ПУСТАЯ переменная, только имя знает плагин, значения этой переменной пустота. Плагин не знает о содержимом переменных. Переменная придет только во время запуска скомпилированной программы или ее теста.

Еще добавлю, что все данные, что идут в плагин СТРОКИ, хоть напиши 12345, это будет строка "12345", а не число. Отдай true это не будет тип bool, это будет строка "true". Тоже самое и в вебпрограммировании. Форма, которую ты заполняешь на сайтах, к примеру номер телефона, или номер дома, все на сервер пойдет строковыми данными.

Добавлено (09 Июля 2023, 00:45)
---------------------------------------------
Тоже самое в некоторых плагинах можно подключить подпрограмму из НЕО. там тоже только имя(подпрограммы) получит плагин. Он не может знать что делает эта подпрограмма, какие там переменные, чем они инициализированы.

Сообщение отредактировано
frolandr - Вс, 09 Июля 2023, 00:43
 
Сообщение
Цитата frolandr ()
Посмотрел плагин faSnapShot. Понял о чем ты говоришь. Естественно она пустая. А зачем нужен трек бар, если значение указывается через переменную.

Трек бар оставил потому, что рисовал его целый день :) , высчитывал, там видел цвет числа справа которое, меняется в зависимости от значения. Ну и вроде как для себя делал.

Если даже чекбокс прикручивать, все равно не совсем то будет. Если выбираем переменную в чекбоксе, то значение трекбара на 0 улетит, что тоже не то.

Я согласен, по негласным правилам написания плагинов там нужен Едит и кнопка для выбора переменной.

Добавлено (09 Июля 2023, 00:42)
---------------------------------------------
Цитата mishem ()
А это уже от тебя зависит, будет он выбран или нет.


Ну да, я могу поставить ему Checked, но это же будет не правда. Я же в плагине не могу проверить что у тебя в переменной. Два дня проверял по разному, ПУСТАЯ переменная, только имя знает плагин, значения этой переменной пустота. Плагин не знает о содержимом переменных. Переменная придет только во время запуска скомпилированной программы или ее теста.

Еще добавлю, что все данные, что идут в плагин СТРОКИ, хоть напиши 12345, это будет строка "12345", а не число. Отдай true это не будет тип bool, это будет строка "true". Тоже самое и в вебпрограммировании. Форма, которую ты заполняешь на сайтах, к примеру номер телефона, или номер дома, все на сервер пойдет строковыми данными.

Добавлено (09 Июля 2023, 00:45)
---------------------------------------------
Тоже самое в некоторых плагинах можно подключить подпрограмму из НЕО. там тоже только имя(подпрограммы) получит плагин. Он не может знать что делает эта подпрограмма, какие там переменные, чем они инициализированы.


Автор - frolandr
Дата добавления - 09 Июля 2023 в 00:32
mishemДата: Вс, 09 Июля 2023, 00:52 | Сообщение # 23
Эксперт форума
Цитата frolandr ()
Нет, там нет не таймера и не одного цикла.

Координаты мыши как передаются?

Добавлено (09 Июля 2023, 00:54)
---------------------------------------------

Цитата frolandr ()
Я же в плагине не могу проверить что у тебя в переменной

Ты можешь проверить переменная там или значение, от этого и плясать.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
Нет, там нет не таймера и не одного цикла.

Координаты мыши как передаются?

Добавлено (09 Июля 2023, 00:54)
---------------------------------------------

Цитата frolandr ()
Я же в плагине не могу проверить что у тебя в переменной

Ты можешь проверить переменная там или значение, от этого и плясать.

Автор - mishem
Дата добавления - 09 Июля 2023 в 00:52
frolandrДата: Вс, 09 Июля 2023, 00:57 | Сообщение # 24
Участник
Цитата mishem ()
Координаты мыши как передаются?

В 16 посте в конце написал, там всего то 3 строки.

Сначала так писал(4 строки):
TPoint P;
GetCursorPos(&P);
((int)P.x); - координата X
((int)P.y); - координата Y
 
Сообщение
Цитата mishem ()
Координаты мыши как передаются?

В 16 посте в конце написал, там всего то 3 строки.

Сначала так писал(4 строки):
TPoint P;
GetCursorPos(&P);
((int)P.x); - координата X
((int)P.y); - координата Y

Автор - frolandr
Дата добавления - 09 Июля 2023 в 00:57
mishemДата: Вс, 09 Июля 2023, 00:57 | Сообщение # 25
Эксперт форума
Цитата frolandr ()
Еще добавлю, что все данные, что идут в плагин СТРОКИ

Проверить что именно находится в строке не составляет проблемы.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
Еще добавлю, что все данные, что идут в плагин СТРОКИ

Проверить что именно находится в строке не составляет проблемы.

Автор - mishem
Дата добавления - 09 Июля 2023 в 00:57
frolandrДата: Вс, 09 Июля 2023, 00:59 | Сообщение # 26
Участник
Цитата mishem ()
Проверить что именно находится в строке не составляет проблемы.

Конечно не проблема, там пусто.
Данные от плагина приходят в таком виде: pCharArray& Params
Далее проверяем Params[0], Params[1].
 
Сообщение
Цитата mishem ()
Проверить что именно находится в строке не составляет проблемы.

Конечно не проблема, там пусто.
Данные от плагина приходят в таком виде: pCharArray& Params
Далее проверяем Params[0], Params[1].

Автор - frolandr
Дата добавления - 09 Июля 2023 в 00:59
mishemДата: Вс, 09 Июля 2023, 01:00 | Сообщение # 27
Эксперт форума
Цитата frolandr ()
В 16 посте в конце написал, там всего то 3 строки.

Но это ты один раз получил. Моитор как осуществляется?

Добавлено (09 Июля 2023, 01:02)
---------------------------------------------

Цитата frolandr ()
Конечно не проблема, там пусто.

Не может такого быть. Если переменная, возвращается имя переменной. Если пусто, значит там пусто.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата frolandr ()
В 16 посте в конце написал, там всего то 3 строки.

Но это ты один раз получил. Моитор как осуществляется?

Добавлено (09 Июля 2023, 01:02)
---------------------------------------------

Цитата frolandr ()
Конечно не проблема, там пусто.

Не может такого быть. Если переменная, возвращается имя переменной. Если пусто, значит там пусто.

Автор - mishem
Дата добавления - 09 Июля 2023 в 01:00
frolandrДата: Вс, 09 Июля 2023, 01:03 | Сообщение # 28
Участник
Сейчас в прагине есть такая команда:
faMouseHookCreate "true" "true" "true" "false" "false" "false"

Добавлено (09 Июля 2023, 01:03)
---------------------------------------------
Так вот в плагине я получиу все эти тру и фолсы.

Добавлено (09 Июля 2023, 01:04)
---------------------------------------------
А вот если написать так:
Set abc = 1;
faMouseHookCreate "[abc]" "true" "true" "false" "false" "false"
То вместо первого параметра я получу пустоту.

Добавлено (09 Июля 2023, 01:05)
---------------------------------------------
Вот руками напиши любое значени, и я получу, хоть цифру, хоть строку, хоть буль, а вот если написать переменную, я смогу получить только ее имя, значение будет пусто.

Добавлено (09 Июля 2023, 01:06)
---------------------------------------------
Чем я только не пробовал и функцией плагина: nbGetVar)(char* VarName, char*& Value);
Все равно пустота.

 
СообщениеСейчас в прагине есть такая команда:
faMouseHookCreate "true" "true" "true" "false" "false" "false"

Добавлено (09 Июля 2023, 01:03)
---------------------------------------------
Так вот в плагине я получиу все эти тру и фолсы.

Добавлено (09 Июля 2023, 01:04)
---------------------------------------------
А вот если написать так:
Set abc = 1;
faMouseHookCreate "[abc]" "true" "true" "false" "false" "false"
То вместо первого параметра я получу пустоту.

Добавлено (09 Июля 2023, 01:05)
---------------------------------------------
Вот руками напиши любое значени, и я получу, хоть цифру, хоть строку, хоть буль, а вот если написать переменную, я смогу получить только ее имя, значение будет пусто.

Добавлено (09 Июля 2023, 01:06)
---------------------------------------------
Чем я только не пробовал и функцией плагина: nbGetVar)(char* VarName, char*& Value);
Все равно пустота.


Автор - frolandr
Дата добавления - 09 Июля 2023 в 01:03
mishemДата: Вс, 09 Июля 2023, 01:08 | Сообщение # 29
Эксперт форума
Так же ты параметры записываешь которые передаются из окна. И можешь их записывать комбинировано. "ChekBox=True;Value=[Variable]" или "ChekBox=False;Value=36"
И ты же считываешь эти значения, и никто не мешает тебе их распарсить и получить то что там находится.

Добавлено (09 Июля 2023, 01:12)
---------------------------------------------
Цитата frolandr ()
только ее имя, значение будет пусто.

Совершенно верно. А какое ты еще значение хочешь получить если это переменная? Изначально она всегда пустая. Но ты получаешь имя переменной, а соответственно это не труе, не фалсе, не цифровое значение. Труе и фалсе ты можешь проверить, числа тоже можешь проверить.

Добавлено (09 Июля 2023, 01:20)
---------------------------------------------

Цитата mishem ()
Труе и фалсе ты можешь проверить, числа тоже можешь проверить.

Если к примеру у нас стоит чекбокс, как выше писал, который прячет трекбар\поле ввода, то проверяя передаваемое значение мы получаем либо число, что элементарно проверяется, либо пустоту, что так же элементарно проверяется, либо текст или сочетание текста и цифр и т.д. Если число, выводим трекбар, чекбокс труе. Если пустота, выводим трекбар, значение по умолчанию, чекбокс труе. Если не число, не пустотата выводим поле ввода, вводим переменную, чекбокс фалсе. Я не пойму о чем мы рассуждаем?


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеТак же ты параметры записываешь которые передаются из окна. И можешь их записывать комбинировано. "ChekBox=True;Value=[Variable]" или "ChekBox=False;Value=36"
И ты же считываешь эти значения, и никто не мешает тебе их распарсить и получить то что там находится.

Добавлено (09 Июля 2023, 01:12)
---------------------------------------------
Цитата frolandr ()
только ее имя, значение будет пусто.

Совершенно верно. А какое ты еще значение хочешь получить если это переменная? Изначально она всегда пустая. Но ты получаешь имя переменной, а соответственно это не труе, не фалсе, не цифровое значение. Труе и фалсе ты можешь проверить, числа тоже можешь проверить.

Добавлено (09 Июля 2023, 01:20)
---------------------------------------------

Цитата mishem ()
Труе и фалсе ты можешь проверить, числа тоже можешь проверить.

Если к примеру у нас стоит чекбокс, как выше писал, который прячет трекбар\поле ввода, то проверяя передаваемое значение мы получаем либо число, что элементарно проверяется, либо пустоту, что так же элементарно проверяется, либо текст или сочетание текста и цифр и т.д. Если число, выводим трекбар, чекбокс труе. Если пустота, выводим трекбар, значение по умолчанию, чекбокс труе. Если не число, не пустотата выводим поле ввода, вводим переменную, чекбокс фалсе. Я не пойму о чем мы рассуждаем?

Автор - mishem
Дата добавления - 09 Июля 2023 в 01:08
frolandrДата: Вс, 09 Июля 2023, 01:20 | Сообщение # 30
Участник
Цитата mishem ()
Так же ты параметры записываешь которые передаются из окна. И можешь их записывать комбинировано. "ChekBox=True;Value=[Variable]" или "ChekBox=False;Value=36"
И ты же считываешь эти значения, и никто не мешает тебе их распарсить и получить то что там находится.

Не нужно парсить, все уже идет отельно. К примеру команда содержит 5 параметров, то в плагин придет массив из 5 значений, просто берем Params[0] - первое значение, Params[1] - второе значение. К стати по умолчанию плагин может обработать только 10 параметров из оной команды.

Добавлено (09 Июля 2023, 01:23)
---------------------------------------------
Приходит тип char он не очень удобен, по этому, так как все идет строками, можно сразу сунуть его в AnsiString и уже с ним работать, преобразовывать в число StrToInt, в буль и т.д. Затем проверять и т.д.

Добавлено (09 Июля 2023, 01:25)
---------------------------------------------

Цитата mishem ()
Совершенно верно. А какое ты еще значение хочешь получить если это переменная? Изначально она всегда пустая. Но ты получаешь имя переменной, а соответственно это не труе, не фалсе, не цифровое значение. Труе и фалсе ты можешь проверить, числа тоже можешь проверить.

Ну вот а я час зачем то это доказывал :)
 
Сообщение
Цитата mishem ()
Так же ты параметры записываешь которые передаются из окна. И можешь их записывать комбинировано. "ChekBox=True;Value=[Variable]" или "ChekBox=False;Value=36"
И ты же считываешь эти значения, и никто не мешает тебе их распарсить и получить то что там находится.

Не нужно парсить, все уже идет отельно. К примеру команда содержит 5 параметров, то в плагин придет массив из 5 значений, просто берем Params[0] - первое значение, Params[1] - второе значение. К стати по умолчанию плагин может обработать только 10 параметров из оной команды.

Добавлено (09 Июля 2023, 01:23)
---------------------------------------------
Приходит тип char он не очень удобен, по этому, так как все идет строками, можно сразу сунуть его в AnsiString и уже с ним работать, преобразовывать в число StrToInt, в буль и т.д. Затем проверять и т.д.

Добавлено (09 Июля 2023, 01:25)
---------------------------------------------

Цитата mishem ()
Совершенно верно. А какое ты еще значение хочешь получить если это переменная? Изначально она всегда пустая. Но ты получаешь имя переменной, а соответственно это не труе, не фалсе, не цифровое значение. Труе и фалсе ты можешь проверить, числа тоже можешь проверить.

Ну вот а я час зачем то это доказывал :)

Автор - frolandr
Дата добавления - 09 Июля 2023 в 01:20
Форум NeoBook » Всё о программе NeoBook » Плагины для NeoBook » Плагин faMouseHook
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: