Страница 2 из 3

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

Добавлено: 12 окт 2020, 10:44
dadreamer
А зачем указываете заголовок окна? Вы же сами писали ранее, что у окна вашей программы нет заголовка. Укажите только класс и путь. Дальше вы пытаетесь использовать хэндл процесса hProcess, но это вам точно не нужно. Окно управляется по HWND. Можете пока вообще удалить CloseHandle.

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

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

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

Добавлено: 12 окт 2020, 11:53
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 напрямую, без батника. Или сперва поэкспериментируйте на примере.

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

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

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

Добавлено: 12 окт 2020, 17:01
dadreamer
Накидал пример, на тестовом jar'е работает. Переделайте по своему усмотрению.

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

Добавлено: 13 окт 2020, 10:12
JohnChaban
dadreamer писал(а): 12 окт 2020, 17:01 Накидал пример, на тестовом jar'е работает. Переделайте по своему усмотрению.
Пока до просмотра вашего примера не срабатывает вот что смотрите пример

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

Добавлено: 13 окт 2020, 10:46
dadreamer
Я ещё на первой странице этой темы писал:
dadreamer писал(а): 09 окт 2020, 16:11Ваш пример для сворачивания/разворачивания окна в таком виде не подойдёт, его надо модифицировать. Проще взять Set Calling VI Wnd Topmost & Active.vi и маленько его подправить, будет быстрее и надежнее.
Смотрите мой пример, там всё уже сделано.

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

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

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

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

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

Добавлено: 13 окт 2020, 18:32
Borjomy_1
как вариант штатными средствами работа с процессами
есть возможность переопределить потоки ввода и вывода, обработку ошибок и прочего.

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

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

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

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

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

Добавлено: 21 окт 2020, 15:45
NickSobolev
Добрый день!
Извиняюсь, что пишу не по теме, не могли бы вы подсказать, что это за элементы на цикле While Loop ?

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

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

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

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