Стороннее приложение

Простейшие вопросы в области инженерной разработки
Аватара пользователя
dadreamer

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

Re: Стороннее приложение

Сообщение dadreamer »

А зачем указываете заголовок окна? Вы же сами писали ранее, что у окна вашей программы нет заголовка. Укажите только класс и путь. Дальше вы пытаетесь использовать хэндл процесса hProcess, но это вам точно не нужно. Окно управляется по HWND. Можете пока вообще удалить CloseHandle.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Стороннее приложение

Сообщение JohnChaban »

JohnChaban писал(а): 12 окт 2020, 10:34
dadreamer писал(а): 12 окт 2020, 09:57 На первом скрине класс окна указан как SunAwtFame, а должен быть SunAwtFrame. И поставьте состояние окна = открыто, чтобы видеть окно программы.
Я добился запуска но оно сворачивается и закрывается. Считает тайм-аут до 5000 и все программа останавливается.
Вложения
Запускается приложение "командная строка" и закрывается
Запускается приложение "командная строка" и закрывается
Аватара пользователя
dadreamer

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

Re: Стороннее приложение

Сообщение dadreamer »

Не знаю, может я что-то не так делаю, но у меня всё работает. :dntknw: Специально нарыл в гугле пример на Java: https://www.codejava.net/coding/swing-a ... ogress-bar Запускал и с панели Execute with HWND Control 2.vi, и с диаграммы Test.vi как напрямую (.jar файл), так и через батник (с cmd /c и без). Во всех случаях исправно получаю хэндл окна (hwnd).
2020-10-12_13-49-25.jpg
Возможно, у вас батник какой-то хитрый или само приложение не такое простое, как кажется. Попробуйте, если возможно, запустить .jar напрямую, без батника. Или сперва поэкспериментируйте на примере.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Стороннее приложение

Сообщение JohnChaban »

[quote=dadreamer post_id=83792 time=1602492819 user_id=3870]
Спасибо запустилась моля программа при этом я указал в пути вместо bat -jar(было моя ошибка, простите).
Вопрос такой теперь если я получил hendl окна теперь я могу например из программы Labview по нажатию одной кнопки свернуть окно своей программы в трей и по нажатию другой кнопки "развернуть на весь экран, при этом окно поставив поверх остальных окон"?
Какие функции из user32.dll можно использовать?
Аватара пользователя
dadreamer

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

Re: Стороннее приложение

Сообщение dadreamer »

Накидал пример, на тестовом jar'е работает. Переделайте по своему усмотрению.
Вложения
Test2.vi
lv2014
(14.95 КБ) 67 скачиваний
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Стороннее приложение

Сообщение JohnChaban »

dadreamer писал(а): 12 окт 2020, 17:01 Накидал пример, на тестовом jar'е работает. Переделайте по своему усмотрению.
Пока до просмотра вашего примера не срабатывает вот что смотрите пример
Вложения
Не срабатывает данный пример
Не срабатывает данный пример
Аватара пользователя
dadreamer

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

Re: Стороннее приложение

Сообщение dadreamer »

Я ещё на первой странице этой темы писал:
dadreamer писал(а): 09 окт 2020, 16:11Ваш пример для сворачивания/разворачивания окна в таком виде не подойдёт, его надо модифицировать. Проще взять Set Calling VI Wnd Topmost & Active.vi и маленько его подправить, будет быстрее и надежнее.
Смотрите мой пример, там всё уже сделано.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Стороннее приложение

Сообщение JohnChaban »

JohnChaban писал(а): 13 окт 2020, 11:30 Спасибо вам огромное ваши пример сработал справочник по функциям я сформирую попозже
Жалко что я такие фишки делать не умею как вы.
А вот еще вопрос можно ли проверить если приложение запушено не запускать его?
Мысль такая что может есть winapi функция getprocessid если id равен 200 то не запускать
Аватара пользователя
dadreamer

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

Re: Стороннее приложение

Сообщение dadreamer »

Если сами из :labview: запускаете, то проблем нет - установите флаг (лог. переменную) и проверяйте её перед каждым запуском. А если не сами, то надо смотреть список запущенных процессов. Посмотрите в поисковике по запросу list running processes site:ni.com , такая задача много раз возникала. В этом случае придётся искать хэндл окна программы, можно взять FindWindow из Execute with HWND Control 2.vi.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Стороннее приложение

Сообщение Borjomy_1 »

как вариант штатными средствами работа с процессами
есть возможность переопределить потоки ввода и вывода, обработку ошибок и прочего.
Вложения
работа с процессом.png
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Стороннее приложение

Сообщение JohnChaban »

Borjomy_1 писал(а): 13 окт 2020, 18:32 как вариант штатными средствами работа с процессами
есть возможность переопределить потоки ввода и вывода, обработку ошибок и прочего.
Сегодня проверил пока штатные средства работают так смотри рисунок
Вложения
Не работает NetProcess
Не работает NetProcess
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Стороннее приложение

Сообщение Borjomy_1 »

А имя исполняемого файла то где? Строка, подаваемая на Filename заканчивается \
В вашем случае, похоже, надо установить UseShellExecute и в аргументах убрать cmd
И redirect Standart error отключите - там требуется подключение функции обработчика ошибок. Понадобится - скину.
NickSobolev
interested
interested
Сообщения: 2
Зарегистрирован: 21 окт 2020, 15:37
Версия LabVIEW: 2019
Контактная информация:

Re: Стороннее приложение

Сообщение NickSobolev »

Добрый день!
Извиняюсь, что пишу не по теме, не могли бы вы подсказать, что это за элементы на цикле While Loop ?
Вложения
123.png
Аватара пользователя
Andrew Lunev

Activity Professionalism
VIP
VIP
Сообщения: 957
Зарегистрирован: 11 дек 2010, 12:31
Награды: 2
Версия LabVIEW: 2014-2021
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 10 раз

Re: Стороннее приложение

Сообщение Andrew Lunev »

Это инициализация Feedback Node, просто другое представление сдвигового регистра.
Алгоритм в обоих циклах на картинках идентичен, но выглядит по разному.
Впредь выбирайте подходящую тему для вопросов. К теме "Стороннее приложение" этот вопрос никак не относится.
Вложения
FN.PNG
FN.PNG (3.9 КБ) 1744 просмотра
NickSobolev
interested
interested
Сообщения: 2
Зарегистрирован: 21 окт 2020, 15:37
Версия LabVIEW: 2019
Контактная информация:

Re: Стороннее приложение

Сообщение NickSobolev »

Andrew Lunev писал(а): 21 окт 2020, 16:04 Это инициализация Feedback Node, просто другое представление сдвигового регистра.
Алгоритм в обоих циклах на картинках идентичен, но выглядит по разному.
Впредь выбирайте подходящую тему для вопросов. К теме "Стороннее приложение" этот вопрос никак не относится.
Благодарю.
Ответить

Вернуться в «Для чайников»