Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ перевод в активное состояние окна приложения

Автор: Sancho 6.8.2010, 15:25

Здравствуйте.
У меня такова проблема: Имеется программа на qt, которая запускает внешнюю программу используя объект и метод класса QProcess

QProcess proc;
QDir::setCurrent(way);
proc.start(name_exe);

в результате нажатие кнопки в программе на qt, необходимо сделать активным окно внешней запущенной программы, которое могло быть свёрнуто в результате его использования.

Имеются соображения по использованию функции WinApi :SetActiveWindow(HWND) Но как получить HWND запущенного приложения? :unknown:

Автор: Litkevich Yuriy 6.8.2010, 17:04

Q_PID QProcess::pid () const
подойдёт?

Автор: DEADHUNT 6.8.2010, 17:10

Цитата(Litkevich Yuriy @ 6.8.2010, 18:04) *
Q_PID QProcess::pid () const
подойдёт?

нет, нужен HANDLE окна, а не процесса.
только не понятно что за свёрнутое окно и где оно создаётся.

Автор: Sancho 6.8.2010, 17:29

Цитата(DEADHUNT @ 6.8.2010, 18:10) *
нет, нужен HANDLE окна, а не процесса.
только не понятно что за свёрнутое окно и где оно создаётся.


свёрнутое окно - окно внешнего приложения, которое запускается из моей программы

Автор: DEADHUNT 6.8.2010, 17:43

Цитата(Sancho @ 6.8.2010, 18:29) *
свёрнутое окно - окно внешнего приложения, которое запускается из моей программы

через WinAPI можно получить HWND по заголовку(HWND WINAPI FindWindow(__in_opt LPCTSTR lpClassName, __in_opt LPCTSTR lpWindowName))

Автор: Litkevich Yuriy 6.8.2010, 19:29

я почти не знаю WinAPI, но думаю, что по ID процесса можно получить и список окон, которые принадлежат этому процессу

Автор: Алексей1153 7.8.2010, 6:57

есть ещё такие полезные апишки

WINUSERAPI
BOOL
WINAPI
EnumWindows(
    __in WNDENUMPROC lpEnumFunc,
    __in LPARAM lParam);

WINUSERAPI
BOOL
WINAPI
EnumThreadWindows(
    __in DWORD dwThreadId,
    __in WNDENUMPROC lpfn,
    __in LPARAM lParam);

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)