Страница 1 из 1

Запуск EXE файла с атрибутами

Добавлено: 12 дек 2017, 23:26
jane_wild
Здравствуйте всем, наверное вопрос глупый, то все же: запускаю файл при помощи System Exec.vi
DMM.png
DMM.png (2.22 КБ) 3599 просмотров
Если точнее запускаю NI DMM Soft Panel. Все запускается, вопрос в том можно ли его запустить с какими нибудь атрибутами, что бы он находился поверх основного окна. Потому как стоит сделать главное окно активным (на кнопочку нажать), как сразу же оно (главное окно) закрывает мой DMM (Вернее не мой а от NI) :(

Re: Запуск EXE файла с атрибутами

Добавлено: 13 дек 2017, 08:45
dadreamer
jane_wild писал(а):можно ли его запустить с какими нибудь атрибутами, что бы он находился поверх основного окна
А "поверх всех окон" не подойдёт? Это будет выглядеть, как если бы вы через WinSpy вызвали команду "Always on Top".
2017-12-13_10-42-33.jpg
Можно, конечно, и порядок Z-очереди поменять. Только нужно ли? Как опыт показывает, возиться с окошками в 95% смысла нет.

Re: Запуск EXE файла с атрибутами

Добавлено: 13 дек 2017, 14:05
jane_wild
Always on top конечно подойдёт. Только не совсем поняла. У меня есть кнопка в программе, нажав на неё, вызывается DMM. И как мне прикрутить WinSpy?

Re: Запуск EXE файла с атрибутами

Добавлено: 13 дек 2017, 15:43
jane_wild
Вообщем пока нашла такое решение
SetForeground.png
SetForeground.png (4.39 КБ) 3571 просмотр
По событию Pane: Mouse Down вызываю эти функции с именем NI-DMM Soft Front Panel. Не красиво конечно, но как то работает. Может все же есть более элегантное решение. Ведь эти функции вызываются всегда при любом щелчке в любом месте (Pane) главного окна, вне зависимости запущен DMM или нет.

Re: Запуск EXE файла с атрибутами

Добавлено: 13 дек 2017, 18:30
dadreamer
jane_wild писал(а):И как мне прикрутить WinSpy?
Ссылку на WinSpy я кинул, чтобы можно было попробовать и посмотреть, как работает. В том плане, устроит или нет.
jane_wild писал(а):Может все же есть более элегантное решение.
Есть, но будет сложнее. Если не пугают сложности, то можно попробовать вот такой вариант. Когда-то я делал подприборчик для запуска экзешников через ShellExecuteEx с последующим контролем окна по HWND. Вот, по этому хэндлу можно окну выставить флаг HWND_TOPMOST, вызвав разок SetWindowPos.

Сделал вот такой примерчик:
Window_On_Top.rar
lv2013
(45.05 КБ) 147 скачиваний
Открывается окно редактора реестра и встаёт поверх всех окон. DMM у меня нету, так что не могу на нём проверить. Рекомендую указывать класс окна, который можно подсмотреть через WinSpy.

Re: Запуск EXE файла с атрибутами

Добавлено: 14 дек 2017, 03:04
Blackman
How to run an exe as a window inside a VI
https://forums.ni.com/t5/LabVIEW/How-to ... -p/3112435
Основное на второй странице.
Пример манипуляций с окном Блокнота.
https://forums.ni.com/ni/attachments/ni ... 20Demo.zip
Работает только с 32 битной LabVIEW. Если нет библиотек OpenG задизейблить не найденные VI и немного подправить код.

Re: Запуск EXE файла с атрибутами

Добавлено: 14 дек 2017, 07:46
dadreamer
Blackman, я встраивание окон уже делал: http://labviewportal.org/viewtopic.php?p=71763#p71763 Надо только заменить Execute with HWND Control.vi на тот, что в архиве выше. Работает и на 64-битных версиях :labview: .

Re: Запуск EXE файла с атрибутами

Добавлено: 09 окт 2020, 12:42
JohnChaban
dadreamer писал(а): 13 дек 2017, 18:30
jane_wild писал(а):И как мне прикрутить WinSpy?
Ссылку на WinSpy я кинул, чтобы можно было попробовать и посмотреть, как работает. В том плане, устроит или нет.
jane_wild писал(а):Может все же есть более элегантное решение.
Есть, но будет сложнее. Если не пугают сложности, то можно попробовать вот такой вариант. Когда-то я делал подприборчик для запуска экзешников через ShellExecuteEx с последующим контролем окна по HWND. Вот, по этому хэндлу можно окну выставить флаг HWND_TOPMOST, вызвав разок SetWindowPos.

Сделал вот такой примерчик:
Window_On_Top.rar
Открывается окно редактора реестра и встаёт поверх всех окон. DMM у меня нету, так что не могу на нём проверить. Рекомендую указывать класс окна, который можно подсмотреть через WinSpy.
Когда скачиваешь пример не хватает файла Path_ogtk.vi