Вы можете попытаться использовать структуру STARTUPINFO , которая передается с CreateProcess, и установить SW_SHOW.Я не уверен, что это поможет привлечь внимание к вершине.Если это не сработает, попробуйте следующее.
Прежде всего, не используйте FindWindow (), это излишне ненадежно, так как работает только через имя окна и имя класса.Вместо этого из вашего вызова CreateProcess () вы должны прочитать lpProcessInformation и получить dwProcessId.Затем вызовите EnumWindows () и ваш обратный вызов будет выглядеть примерно так:
BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam ) {
DWORD dwPID;
GetWindowThreadProcessId( hwnd, &dwPID );
if( dwPID == lParam ) {
SetWindowPos( hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
// Or just SetFocus( hwnd );
return FALSE;
}
return TRUE;
}
При вызове EnumWindows () вам нужно будет передать PID, который вы захватили ранее, как lParam, вот так:
EnumWindows( EnumWindowsProc, ( LPARAM )( PI -> dwProcessId ) );