Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Создает глобальный хук для мыши, перехватывая ее события.
Команды плагина:
Установка / удаление 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] - предназначена для предупреждающих сообщений.
Команды получения информации о мыши и ее настройках можно получать без установки хука.
Можно еще добавить цвет пикселя под курсором. И все это только не при клике, а при движении мыши. Кликом можно будет получить уже из любого объекта необук, ну почти из любого. Не хочешь читать хелп?
Добавлено (07 Июля 2023, 12:33) --------------------------------------------- Добавил координаты мыши, координаты левого верхнего угла объекта и координаты правого нижнего угла. По этим координатам рассчитываются размеры объекта, то бишь прямоугольник. Хендл можно получить и при попадании мыши на объект, так и кликом, думаю оба нужны. Добавил еще заголовок окна, если навести на окно. mishem, пока не знаю в чем разница в хендлах, у меня наверное число в шестнадцатеричном формате у Петера наверное в десятеричном, потом посмотрим. Вечером продолжу.
Добавлено (07 Июля 2023, 12:39) --------------------------------------------- Хук на весь дисплей, по этому он читает заголовки и др. данные со всего экрана. Поводите по панали задач, он и кнопку Пуск читает и часы и т.д.
Спасибо!!! В первом посте ещё тоже ссылку на свежую предлагаю менять , чтобы с первого поста всегда можно было самую последнюю версию взять.
Добавлено (07 Июля 2023, 13:01) --------------------------------------------- Работает отлично! Удобно, что есть возможность получить хендл и объекта по которому сделан клик и в движении! Передача размеров объекта плагином, даже за пределами окна приложения – круто!!!
Добавлено (07 Июля 2023, 13:03) --------------------------------------------- Формат хендла да, надо проверить, чтобы можно было из плагина в плагин передавать без проблем.
Обработку колесика мыши добавил: MOUSE_WHEEL Класс объекта добавил, думаю полезная вещь. Хендлы привел в десятеричное число, как у НЕО.
Цвет пикселя под мышью почему-то не корректно определяет, только в заголовке программы и в Виндовс иногда влевой части программы, посмотрю позже.
Пробовал узнавать виден объект или нет, активен или нет. Не работает почему-то все время true показывает, даже если скрываю объект или делаю не активным.
Ну это все что я знал и что уже делал в плагине SnapShot для создания скриншотов. Для получения других данных нужно функции из интернета тянуть.
Добавлено (07 Июля 2023, 17:41) ---------------------------------------------
ЦитатаВадим ()
В первом посте ещё тоже ссылку на свежую предлагаю менять
Понял, там тоже изменил.
Добавлено (07 Июля 2023, 17:52) --------------------------------------------- Кстати, сейчас заметил фризы, двигаю мышкой по программе, она подтормаживает. Мышкой перемещаю окно, оно тоже скачками движется. Возможно уже параметров много вытаскиваю, возможно какая то одна функция тормозит.
Сообщение отредактировано frolandr - Пт, 07 Июля 2023, 17:53
Кстати, сейчас заметил фризы, двигаю мышкой по программе, она подтормаживает. Мышкой перемещаю окно, оно тоже скачками движется.
Отладчик сверни. Не забывай тестировать в скомпилированном варианте.
Цитатаfrolandr ()
Возможно уже параметров много вытаскиваю,
Передаешь в окно. Нужно делать выбор параметров. Большинство будут нужны в редких случаях. В основном клики и координаты мыши. Подпрограмма нужна край.
Добавлено (07 Июля 2023, 18:05) --------------------------------------------- При удалении хука все переменные остаются. По хорошему должны удаляться, но нужно подумать, что лучше. Оставить или удалять.. Не хочешь читать хелп?
Отладчик сверни. Не забывай тестировать в скомпилированном варианте.
Ок.
Цитатаmishem ()
Передаешь в окно. Нужно делать выбор параметров. Большинство будут нужны в редких случаях. В основном клики и координаты мыши. Подпрограмма нужна край.
Окном настроек пока не занимался. Не известно какие параметры и сколько будет, каждый раз изменять окно не удобно. Подключение подпрограммы тоже пока не пробовал. Кстати, а на что ее вешать если что? На событие мыши, типа MouseDown?
Цитатаmishem ()
При удалении хука все переменные остаются. По хорошему должны удаляться, но нужно подумать, что лучше. Оставить или удалять..
Тоже задавался этим вопросом, но это дело 3 минут, главное решить, удалять или нет содержимое. Скорее удалять, ведь если хук удаляем, то и данные в переменных не нужны, их можно и средствами НЕО в другие переписать если что.
Сообщение отредактировано frolandr - Пт, 07 Июля 2023, 18:32
Или на все события скопом, а в подпрограмме уже условия писать, или для каждого события отдельную подпрограмму.
Разберись сначала. Что осилишь, то и делай. Со временем, как опыта наберешься, подправишь если что.
Цитатаfrolandr ()
Скорее удалять, ведь если хук удаляем, то и данные в переменных не нужны, их можно и средствами НЕО в другие переписать если что.
Я тоже к этому склоняюсь. Но опять, можно как вариант в настройках чекбоксом организовать. По умолчанию удалять, а если кому надо, чекбокс отметил и не будут удаляться.
Добавлено (07 Июля 2023, 18:45) ---------------------------------------------
Цитатаmishem ()
Или на все события скопом
На смену координат естественно нет смысла, а вот на клики, на хэндл, на заголовок подпрограмма нужна. Можно одну на все. И опять же с выбором, как у Петра к примеру. Не стесняйся оттуда что то заимствовать. Челоек не один день потратил на решение вопросов. Зачем изобретать велосипед?
Добавлено (07 Июля 2023, 18:52) ---------------------------------------------
Цитатаfrolandr ()
Обработку колесика мыши добавил: MOUSE_WHEEL
Не годится.
Раз крутнул и в переменной постоянно MOUSE_WHEEL. А куда крутнул? Сколько крутнул? Я еще удивился что так быстро. Петр с месяц наверно бился, но так по моему до конца и не осилил. Где то тема обсуждения даже есть.
Если не осилишь, клик просто организуй средней кнопкой. Желательно еще и дополниельные было бы подключить, но там по моему засада есть. Сейчас уже не вспомню. Не хочешь читать хелп?
В этой функции нет распознавания куда и сколько, верно за пару дней многого не сделать.
В догонку(ссылку пока не даю, исправлю сначала кое-что):
Добавил реакцию на среднюю кнопку, нажата(MIDDLE_DOWN), отпущена(MIDDLE_UP).
С получением цвета разобрался. Все дело в том, что у меня в параметрах экрана стоит Масштаб 125%. Масштаб можно менять с Виндовс 8,1 вроде бы(обычно это 100, 125, 150 и 175%) в связи с этим точка получения координат была не верная. Уже сталкивался с этим при создании скриншотов. Сейчас сделал, чтобы добавлялся масштаб. Однако не все так радужно с определением цвета пикселя. Цвет можно получить не на всех объектах. На кнопке не получается, на Эдит, Лейбле, окне - все ок, даже цвет бордюра. Навел на рабочий стол виндовс, показывает один и тот же цвет, по видимому он не цвет картинки рабочего стола показывает, а цвет под ней, если ее убрать с рабочего стола. Ну или другую функцию нужно применять, получать канвас может окна, пока так.
В связи с тем, что в современных Виндовс имеется изменение масштаба, не верно показывает размеры всего экрана(это я сделаю), но вот координаты мыши почему то показывает верно !!!
Во многом еще нужно разбираться, но вот то, что идут фризы даже на скомпилированном проекте - это факт. Видимо все же постоянное извлечение координат, извлечение цвета и пр. дают о себе знать. Если бы это все было повешено на КЛИК, а не на ДВИЖЕНИЕ мыши, думаю дерганий бы не было.
Видимо все же постоянное извлечение координат, извлечение цвета и пр. дают о себе знать.
Сомневаюсь. Бери как пример плагин Петра. Хотя у него глобальный хук с новыми версиями винды перестал работать. Но пока работал, проблем не было. Не хочешь читать хелп?
Забыл написать, теперь обновленные версии, по ссылке в первом посте.
Вчера сделал помощник для создания хука. Пока доступны 6 параметров. Сделал через ComboBox, а не через CheckBox. Так как комбо уже написан был, а чекбок писать нужно. В общем, можно потестить уже. Остальные параметры буду добавлять постепенно, по мере проверки и осмыслении их правильности работы.
В обработку мыши добавил еще: MOUSE_MOVE Даже не знаю нужен ли? Срабатывает каждый раз при движении мыши. Напишите нужен или нет?
Сообщение отредактировано frolandr - Сб, 08 Июля 2023, 13:14
1. При вызове окна двойным кликом по команде не заполняются поля теми значениями которые были. 2. Или значения по умолчанию должны уже стоять в комбобксах, или делать проверку, и если значение пустое, устанавливать значение по умолчанию. Иначе при пустых значениях вываливается ошибка. 3. Вопросы можно убрать. Получать данные о кнопках мыши? = true равнозначно Получать данные о кнопках мыши. = true. Я бы наверно выделил блоком и написал Выводить информацию:, а далее Действия кнопок мыши, Координаты мыши, Дескриптор окна\Объекта, Класс объекта, Координаты и размер объекта, Текст заголовка Окна\Объекта. 4. И все же на мой взгляд чекбоксы лучше. И быстрее выбирать, и тебе обработку делать проще. ИМХО.
Добавлено (08 Июля 2023, 14:52) ---------------------------------------------
Обновил. Блин возможно некоторые пред. разы я не те тесты выкладывал. На компе 3 диска, и все с кучей папок по тестам того или иного плагина.
Возможно не ту версию скинул, не доработанную. Комбобоксы были пустые, я для переменных готовил, ну там когда кнопочкой выбираешь переменную. Переделал на ЧекБоксы, но в этом случае лишаемся автоматического добавления переменных.
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) --------------------------------------------- Ты этот плагин через хук делаешь, или готовыми функциями?
Скачай Спин Едит Там команда 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 можно менять масштаб. По этому у меня и цвет сначала не в тех местах извлекался. Теперь вот переделал на:
На вкус и цвет все фломастеры разные. Мы с Петром давно пришли к выводу, что окна помошника должны максимально быть приближены к формату НБ. Кто то считает по другому. Либо не может этого добиться, либо действительно другого мнения.
Как считаешь нужным, так и делай.
Цитатаfrolandr ()
что не возможно привязать переменную
Сомневаюсь, но спорить не буду. Пока нет желания устанавливать делфи и поднимать литературу.
Цитатаfrolandr ()
она ПУСТАЯ, до того времени пока программу не запустишь. Т.е. в окне помощника она ПУСТАЯ.
Так а кто тебе мешает ее запустить вместе с окном? (предположение). Естественно то что в окне и то что после будет в НБ с собой ни как не связаны, но тебе нужно значение, а не совместное использование. В окне работает свой трек бар, в НБ свой. Ты только получаешь значение и передаешь его в переменую нб. После закрытия окна уничтожаешь, или оставляешь (по желанию) трекбар.
Это все чисто теоретически у меня в голове, повторяю, проверить не могу.
Цитатаfrolandr ()
то только через Комбобокс делать. там и выбрать можно и переменную вставить.
Комбобокс удобен тебе, большинству пользователей он будет не удобен. Во первых названия значений в основном идут на английском языке (влом же обращаться к комбобоксу по индексу :)) Во всяком случае в основном это именно так. А если будешь писать обработку, то это тебе лишняя головная боль. А оно надо? (это то что у тебя в голове появится). Во вторых, если комбобокс как в первом варианте был (true\false), то чем он отличается от текстового поля? Если в комбо перечислять параметры, то куда переменные писать? Опять обработка... И т.д. и т.п. По этому говорю, делай как считаешь правильно.
Для себя проще делать, для людей нужно вырабатывать определенные правила.
Есть много хороших плагинов, но люди ими не пользуются, потому что не удобно. Есть много удобных плагинов, но я к примеру ими не пользуюсь, потому что они глючные. А есть идеальные плагины.
Вот и решай, что именно ты хочешь сделать.
Цитатаfrolandr ()
Вот к примеру, все время писал так
Я сейчас уже не помню, там несколько вариантов есть. Не могу просто понять, почему окно переодически подвисает. Что то у тебя в коде его тормозит. Может вычисления, может цикл, может таймер.. Если сделано через цикл, попробуй сделать через таймер. Если через таймер, попробуй увеличить задержку таймера. Там слишком маленька частота обновления не нужна. А 10 и 100 милсек. играют огромную разницу на нагрузку процессора. Не хочешь читать хелп?
На вкус и цвет все фломастеры разные. Мы с Петром давно пришли к выводу, что окна помошника должны максимально быть приближены к формату НБ. Кто то считает по другому. Либо не может этого добиться, либо действительно другого мнения.
Считаю, что максимально приближены должны быть к родным НЕО. Чтобы привычно был, но и должно быть что-то свое, я вот голубую клетку добавляю, как на тетрадном листе. Другое дело, что я вот даже не знаю похожи мои окна или нет. Я пользуюсь Виндовс, с темой от одного человека, была у меня раньше от него 8,1, позже 10 и сейчас на всех трех SSD стоит 11 версия, грузится после включения пинания она не больше 5-10 сек.
Цитатаmishem ()
Так а кто тебе мешает ее запустить вместе с окном? (предположение).
Окно мы пишем в плагине, это фактически dll, когда редактируем команду, можем получить из НЕО информацию о компонентах, в частности ИМЕНАХ прямоугольников, о ИМЕНАХ переменных, о ИМЕНАХ подпрограмм. Написал ИМЕНА с большой буквы, потому, что в плагине мы знаем только эти имена, мы не знаем, что в них. Все эти переменные создаются и инициализуруются только во время запуска программы написанной в НЕО. Фактически для плагина все переменные из НЕО это лишь строки. Я даже думал, что фактически можно получить значение, но только прочитав файл публикации и где-то в нем найти имя переменной и присвоенное ей значение. Вот смотри мы иногда в данный момент времени даже не знаем, что есть в переменной, к примеру код: if (условие) переменная abc=1 else переменная абс=0 Только в момент начала работы программы или когда поток задач дойдет до этого кода мы можем узнать каково будет значение этой abc Когда дело в работающей программе дойдет до команды плагина, тогда можно получить значение этой переменной.
Цитатаmishem ()
Комбобокс удобен тебе, большинству пользователей он будет не удобен. Во первых названия значений в основном идут на английском языке (влом же обращаться к комбобоксу по индексу :))
В основном в плагинах данные через Едит или КомбоБокс передаются. Они удобны, потому, что в них можно вписать имя переменной. Ну можно еще пару компонентов найти, ЛейбеЕдит, ну это как бы комбинация Едит уже с надписью. Сам видел, не в чекбокс не в радиобаттон, не в трекбар не вписать переменную. Если рядом с ними добавить Едит это тоже не выход. К примеру есть чекбокс, а для переменной поле Эдит, кто главнее? Мы знаем, что переменная в окне ПУСТАЯ. Т.е пишешь ты в перемунную тру(TRUE), а чекбокс не выбран. Когда сохранишь команду, а затем двойным кликом решишь ее редактировать, то чекбокс также будет не выбран! Вспомни переменная ПУСТАЯ! Это все введет в заблуждение. Я два дня с Трекбаром так мучался. Я не утверждаю на 100%, если есть у кого рабочий код, то буду только рад, к трекбару привязать переменную
она ПУСТАЯ, до того времени пока программу не запустишь.
Посмотрел плагин faSnapShot. Понял о чем ты говоришь. Естественно она пустая. А зачем нужен трек бар, если значение указывается через переменную. Нужно тогда чекбокс делать "Установить значение\выбрать переменную" и прятать при определенном выборе текстовое поле\трекбар. По другому ни как. Даже если переменная ранее предопределена, можно просканировать проект, вычислить значение, но что оно даст? В итоге при закрытии окна все равно будет название переменной. По этому трекбар при выборе переменной совсем ни к чему. Соответственно и выбор переменной при установке значения трекбаром, тоже не нужен.
Добавлено (09 Июля 2023, 00:20) ---------------------------------------------
Не могу просто понять, почему окно переодически подвисает.
Да, писал тебе об этом. Нет, там нет не таймера и не одного цикла. Цикл это сам Хук. т.е. он постоянно в работе, у Петра даже называется монитор мыши, т.е. все в реальном времени. Я по этому и писал, одно дело повесить на щелчек мыши, другое на движение. Обработки идет в разы меньше.
Работа такая, как только двину мышью получаем событие МаусМув, далее идет проверка нужно ли получать координаты, если да, то выводим, нет проверяем дальше, нужно ли получать Хендл, да, получаем и так 6 значений. Проверю потом, что именно тормозит. НЕО однопоточный, к примеру на JS можно промис создать и делать дальше что угодно, как только промис получит значение он его публикует, работает асинхронно. Ну а НЕО все делает по порядку, ему время на одно, второе и третье нужно.
К примеру есть чекбокс, а для переменной поле Эдит, кто главнее?
Выше написал. Только чекбокс как и радиокнопка нужны для да\нет. Три и более варианта уже комбо едит. Или опять же, как выше написал чекбокс как дополнение к чему то, опять же, для выбора варианта. Так же и радиокнопка может быть для выбора варианта только уже из большего кол-ва.
Цитатаfrolandr ()
Когда сохранишь команду, а затем двойным кликом решишь ее редактировать, то чекбокс также будет не выбран!
Посмотрел плагин faSnapShot. Понял о чем ты говоришь. Естественно она пустая. А зачем нужен трек бар, если значение указывается через переменную.
Трек бар оставил потому, что рисовал его целый день , высчитывал, там видел цвет числа справа которое, меняется в зависимости от значения. Ну и вроде как для себя делал.
Если даже чекбокс прикручивать, все равно не совсем то будет. Если выбираем переменную в чекбоксе, то значение трекбара на 0 улетит, что тоже не то.
Я согласен, по негласным правилам написания плагинов там нужен Едит и кнопка для выбора переменной.
Добавлено (09 Июля 2023, 00:42) ---------------------------------------------
Цитатаmishem ()
А это уже от тебя зависит, будет он выбран или нет.
Ну да, я могу поставить ему Checked, но это же будет не правда. Я же в плагине не могу проверить что у тебя в переменной. Два дня проверял по разному, ПУСТАЯ переменная, только имя знает плагин, значения этой переменной пустота. Плагин не знает о содержимом переменных. Переменная придет только во время запуска скомпилированной программы или ее теста.
Еще добавлю, что все данные, что идут в плагин СТРОКИ, хоть напиши 12345, это будет строка "12345", а не число. Отдай true это не будет тип bool, это будет строка "true". Тоже самое и в вебпрограммировании. Форма, которую ты заполняешь на сайтах, к примеру номер телефона, или номер дома, все на сервер пойдет строковыми данными.
Добавлено (09 Июля 2023, 00:45) --------------------------------------------- Тоже самое в некоторых плагинах можно подключить подпрограмму из НЕО. там тоже только имя(подпрограммы) получит плагин. Он не может знать что делает эта подпрограмма, какие там переменные, чем они инициализированы.
Сообщение отредактировано frolandr - Вс, 09 Июля 2023, 00:43
Сейчас в прагине есть такая команда: 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); Все равно пустота.
Так же ты параметры записываешь которые передаются из окна. И можешь их записывать комбинировано. "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" И ты же считываешь эти значения, и никто не мешает тебе их распарсить и получить то что там находится.
Не нужно парсить, все уже идет отельно. К примеру команда содержит 5 параметров, то в плагин придет массив из 5 значений, просто берем Params[0] - первое значение, Params[1] - второе значение. К стати по умолчанию плагин может обработать только 10 параметров из оной команды.
Добавлено (09 Июля 2023, 01:23) --------------------------------------------- Приходит тип char он не очень удобен, по этому, так как все идет строками, можно сразу сунуть его в AnsiString и уже с ним работать, преобразовывать в число StrToInt, в буль и т.д. Затем проверять и т.д.
Добавлено (09 Июля 2023, 01:25) ---------------------------------------------
Цитатаmishem ()
Совершенно верно. А какое ты еще значение хочешь получить если это переменная? Изначально она всегда пустая. Но ты получаешь имя переменной, а соответственно это не труе, не фалсе, не цифровое значение. Труе и фалсе ты можешь проверить, числа тоже можешь проверить.