VI для кул хацкера

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Ответить
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

VI для кул хацкера

Сообщение Juri »

1. Запускаем Test
2. Test запускает Call program
3. Call program запускает Program в режиме call and forget и передает ей свою vi reference.
4. Program из этой vi reference берет vi reference главной программы и получает доступ ко всей ее панели и контролам.

Зачем? Во славу сатаны, конечно же!
В моем примере я считываю нажатия всех клавиш клавиатуры при работе в окне главной программы.
Вложения
111111.png
hidden.llb
(51.83 КБ) 162 скачивания
Последний раз редактировалось Juri 24 авг 2017, 11:26, всего редактировалось 4 раза.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Событие panel close не срабатывает

Сообщение dadreamer »

Usss писал(а):с закрытием ничего не получается Program зависает.
Если Main закрывать нажатием на "крестик", то оба СабВИ останавливаются. Если закрывать с помощью кнопки, то Program продолжает работать. Оно и понятно - СабВИ не получает никакого сигнала о том, что нужно завершить работу. Здесь можно всяко извращаться и даже добиться, чтобы заработало. Но проще и удобнее сделать в Main логический уведомитель или переменную Exit и выставлять его/её в True по закрытии основного прибора.
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Re: Событие panel close не срабатывает

Сообщение Juri »

Нашел решение. Надо сделать циклическую проверку свойства execution.state. Шапку темы исправил.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: VI для кул хацкера

Сообщение dadreamer »

Usss, не проще было оформить СабВИ в виде параллельного цикла по стандартному шаблону? Ваш СабВИ итак выполняется параллельно, только запрятан и пуск-стоп делается через очередные "велосипеды".

Инструменты синхронизации не просто так придуманы.
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Re: VI для кул хацкера

Сообщение Juri »

Проще, но я хотел, чтобы у той vi, которую программист кидает в свой проект не было никаких входов. Кинул и забыл.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: VI для кул хацкера

Сообщение dadreamer »

Usss писал(а):Проще, но я хотел, чтобы у той vi, которую программист кидает в свой проект не было никаких входов. Кинул и забыл.
Начиная с 13-й версии в :labview: есть пара вот таких замечательных инструментов:
2017-08-24_15-37-03.jpg
Нужен только Ref основного :vi: и индекс контрола. Я обычно индексы загоняю в Variant и рассылаю всем :vi: на этапе инициализации. Хотя вы можете задать индекс константой - насколько знаю, в текущем экземпляре приложения индексы не меняются. Ну, а Main VI Ref вы знаете, как получить.
Ответить

Вернуться в «Общие»