Стороннее приложение
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Стороннее приложение
А зачем указываете заголовок окна? Вы же сами писали ранее, что у окна вашей программы нет заголовка. Укажите только класс и путь. Дальше вы пытаетесь использовать хэндл процесса hProcess, но это вам точно не нужно. Окно управляется по HWND. Можете пока вообще удалить CloseHandle.
- JohnChaban
- leader
- Сообщения: 669
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2015,2016
- Откуда: Город Сосновый Бор Ленинградская Область
- Контактная информация:
Re: Стороннее приложение
JohnChaban писал(а): ↑12 окт 2020, 10:34Я добился запуска но оно сворачивается и закрывается. Считает тайм-аут до 5000 и все программа останавливается.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Стороннее приложение
Не знаю, может я что-то не так делаю, но у меня всё работает. Специально нарыл в гугле пример на Java: https://www.codejava.net/coding/swing-a ... ogress-bar Запускал и с панели Execute with HWND Control 2.vi, и с диаграммы Test.vi как напрямую (.jar файл), так и через батник (с cmd /c и без). Во всех случаях исправно получаю хэндл окна (hwnd).
Возможно, у вас батник какой-то хитрый или само приложение не такое простое, как кажется. Попробуйте, если возможно, запустить .jar напрямую, без батника. Или сперва поэкспериментируйте на примере.
- JohnChaban
- leader
- Сообщения: 669
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2015,2016
- Откуда: Город Сосновый Бор Ленинградская Область
- Контактная информация:
Re: Стороннее приложение
[quote=dadreamer post_id=83792 time=1602492819 user_id=3870]
Спасибо запустилась моля программа при этом я указал в пути вместо bat -jar(было моя ошибка, простите).
Вопрос такой теперь если я получил hendl окна теперь я могу например из программы Labview по нажатию одной кнопки свернуть окно своей программы в трей и по нажатию другой кнопки "развернуть на весь экран, при этом окно поставив поверх остальных окон"?
Какие функции из user32.dll можно использовать?
Спасибо запустилась моля программа при этом я указал в пути вместо bat -jar(было моя ошибка, простите).
Вопрос такой теперь если я получил hendl окна теперь я могу например из программы Labview по нажатию одной кнопки свернуть окно своей программы в трей и по нажатию другой кнопки "развернуть на весь экран, при этом окно поставив поверх остальных окон"?
Какие функции из user32.dll можно использовать?
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Стороннее приложение
Накидал пример, на тестовом jar'е работает. Переделайте по своему усмотрению.
- Вложения
-
- Test2.vi
- lv2014
- (14.95 КБ) 67 скачиваний
- JohnChaban
- leader
- Сообщения: 669
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2015,2016
- Откуда: Город Сосновый Бор Ленинградская Область
- Контактная информация:
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Стороннее приложение
Я ещё на первой странице этой темы писал:
Смотрите мой пример, там всё уже сделано.
- JohnChaban
- leader
- Сообщения: 669
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2015,2016
- Откуда: Город Сосновый Бор Ленинградская Область
- Контактная информация:
Re: Стороннее приложение
JohnChaban писал(а): ↑13 окт 2020, 11:30 Спасибо вам огромное ваши пример сработал справочник по функциям я сформирую попозже
Жалко что я такие фишки делать не умею как вы.
А вот еще вопрос можно ли проверить если приложение запушено не запускать его?
Мысль такая что может есть winapi функция getprocessid если id равен 200 то не запускать
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Стороннее приложение
Если сами из запускаете, то проблем нет - установите флаг (лог. переменную) и проверяйте её перед каждым запуском. А если не сами, то надо смотреть список запущенных процессов. Посмотрите в поисковике по запросу list running processes site:ni.com , такая задача много раз возникала. В этом случае придётся искать хэндл окна программы, можно взять FindWindow из Execute with HWND Control 2.vi.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Стороннее приложение
как вариант штатными средствами работа с процессами
есть возможность переопределить потоки ввода и вывода, обработку ошибок и прочего.
есть возможность переопределить потоки ввода и вывода, обработку ошибок и прочего.
- JohnChaban
- leader
- Сообщения: 669
- Зарегистрирован: 18 фев 2010, 13:26
- Версия LabVIEW: 2015,2016
- Откуда: Город Сосновый Бор Ленинградская Область
- Контактная информация:
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Стороннее приложение
А имя исполняемого файла то где? Строка, подаваемая на Filename заканчивается \
В вашем случае, похоже, надо установить UseShellExecute и в аргументах убрать cmd
И redirect Standart error отключите - там требуется подключение функции обработчика ошибок. Понадобится - скину.
В вашем случае, похоже, надо установить UseShellExecute и в аргументах убрать cmd
И redirect Standart error отключите - там требуется подключение функции обработчика ошибок. Понадобится - скину.
-
- interested
- Сообщения: 2
- Зарегистрирован: 21 окт 2020, 15:37
- Версия LabVIEW: 2019
- Контактная информация:
Re: Стороннее приложение
Добрый день!
Извиняюсь, что пишу не по теме, не могли бы вы подсказать, что это за элементы на цикле While Loop ?
Извиняюсь, что пишу не по теме, не могли бы вы подсказать, что это за элементы на цикле While Loop ?
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Стороннее приложение
Это инициализация Feedback Node, просто другое представление сдвигового регистра.
Алгоритм в обоих циклах на картинках идентичен, но выглядит по разному.
Впредь выбирайте подходящую тему для вопросов. К теме "Стороннее приложение" этот вопрос никак не относится.
Алгоритм в обоих циклах на картинках идентичен, но выглядит по разному.
Впредь выбирайте подходящую тему для вопросов. К теме "Стороннее приложение" этот вопрос никак не относится.
- Вложения
-
- FN.PNG (3.9 КБ) 1747 просмотров
-
- interested
- Сообщения: 2
- Зарегистрирован: 21 окт 2020, 15:37
- Версия LabVIEW: 2019
- Контактная информация:
Re: Стороннее приложение
Благодарю.Andrew Lunev писал(а): ↑21 окт 2020, 16:04 Это инициализация Feedback Node, просто другое представление сдвигового регистра.
Алгоритм в обоих циклах на картинках идентичен, но выглядит по разному.
Впредь выбирайте подходящую тему для вопросов. К теме "Стороннее приложение" этот вопрос никак не относится.