Как выдвинуть окно другого процесса на передний план?
От: Gaxis  
Дата: 16.04.21 16:03
Оценка:
Пробовал так делать но не работает.
char*put="C:\\Program Files\\Mozilla Firefox\\firefox.exe";
STARTUPINFOA start_info={sizeof start_info};
PROCESS_INFORMATION proc_info={0};
CreateProcessA(put,0,0,0,0,0,0,0,&start_info,&proc_info);
 Sleep(10000);//для того чтобы приложение загрузилось нормально нужно пока оставить
EnumWindows(EnumWindowsProc,proc_info.dwProcessId);//окно придётся находить
//пробовал подключаться к потокам но тоже не работает
//int iMyTID=GetCurrentThreadId(); ;
//int iCurrTID = GetWindowThreadProcessId(g_HWND,0);
//AttachThreadInput(iMyTID, iCurrTID, TRUE);
//SetForegroundWindow(g_HWND);
//SwitchToThisWindow(g_HWND, TRUE);
//AttachThreadInput(iMyTID, iCurrTID, FALSE);
SetWindowPos(g_HWND,HWND_TOPMOST,400,400,400,400,SWP_SHOWWINDOW);//cout<<<<endl;
DWORD qq_=GetLastError();
char gh;
cin>>gh;cout<<"gh "<<gh<<" код ошибки "<<qq_<<endl;//если убрать эту строку то мы не увидим маленько окно перемещённое на передний план

DWORD ExitCode=0;
GetExitCodeProcess(proc_info.hProcess,&ExitCode);
TerminateProcess(proc_info.hProcess,ExitCode);
CloseHandle(proc_info.hProcess);
Отредактировано 16.04.2021 17:25 Gaxis . Предыдущая версия .
Re: Как выдвинуть другого процесса на передний план?
От: LaptevVV Россия  
Дата: 16.04.21 16:35
Оценка:
1. Процесс или окно?
О процессах так не говорят.
2. Если запустить приложение, ищи функцию что типа Execute...
3. И это не С++, а WinAPI — в том форуме ответят точно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Отредактировано 16.04.2021 16:36 LaptevVV . Предыдущая версия .
Re: Как выдвинуть другого процесса на передний план?
От: Carc Россия AmlPages.com — http://www.amlpages.com/home.php
Дата: 16.04.21 16:39
Оценка:
Здравствуйте, Gaxis, Вы писали:


G>Пробовал так делать но не работает.

G>....
G>EnumWindows(EnumWindowsProc,proc_info.dwProcessId);//окно придётся находить
G>//пробовал подключаться к потокам но тоже не работает
G>//int iMyTID=GetCurrentThreadId(); ;
G>//int iCurrTID = GetWindowThreadProcessId(g_HWND,0);
G>//AttachThreadInput(iMyTID, iCurrTID, TRUE);
G>…
G>[/ccode]
А что говорит в ответ AttachThreadInput? Подключается или нет? GetLastError?
Еще можно через интерфейс ITaskbarList попробовать…
Aml Pages Home
Re: Как выдвинуть другого процесса на передний план?
От: VladFein США www.FeinSoftware.com
Дата: 16.04.21 17:19
Оценка:
Здравствуйте, Gaxis, Вы писали:


G>Пробовал так делать но не работает.


1. Не надо AttachThreadInput
2. Окно нашли правильно? Проверьте Spy++
3. "на передний план" — это SetForegroundWindow()
4. Ваше окно должно быть foreground чтобы иметь привилегии "поднять" другое окно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.