[C++/WinAPI] Focus tworzonego procesu

0

Witam.

Za pomocą mojej aplikacji tworzę proces w ten sposób :

    STARTUPINFO startupInfo = {0};
	startupInfo.cb = sizeof(startupInfo);

	PROCESS_INFORMATION processInformation;

	BOOL result = CreateProcess(
	  "C:\\program.exe",
	  NULL,
	  NULL,
	  NULL,
	  FALSE,
	  STARTF_USESHOWWINDOW,
	  NULL,
	  NULL,
	  &startupInfo,
	  &processInformation
	);

Wiecie może w jaki sposób "wyłączyć" focus tej aplikacji ?

Problem polega na tym, że muszę napisać coś w rodzaju launchera dla tej aplikacji, ponieważ gdy jest uruchamiana i robi co do niej należy odbiera focus aplikacji której użytkownik aktualnie używa, co może być trochę frustrujące :-) ( np. użytkownik klepie coś w Word-zie, aplikacja uruchamia się i za każdym razem gdy wykonuje jakąś funkcję odbiera focus Word-owi). Nie jestem autorem tej aplikacji i nie mam do niej źródeł, więc muszę to zrobić jakoś na około.

Próbowałem również z pobraniem uchwytu tej aplikacji, ale gdy już miałem uchwyt wyczerpałem wszelkie opcje.

Edit : Również ShellExecute nie zdało egzaminu

Z góry wielkie dzięki za wszelkie wskazówki.

Pozdrawiam.

0

Wydaje mi się, że dałoby radę zrobić taki myk: przed odpaleniem tego nowego procesu szukasz aktywnego okna, potrzebujesz jego threadId, następnie korzystasz z funkcji AttachThreadInput, żeby móc skorzystać z funkcji GetFocus. Pobierasz ten focus, odpalasz tą aplikację, którą chcesz odpalić, następnie przywracasz focus (SetFocus) tam gdzie był. Nie podam Ci gotowca ale poszperaj za tymi funkcjami na msdn i pokombinuj. :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1