Re: Flash Player Launching Process With CreateProcess
Jay wrote:
Hey There,
I have been writing some code in C++ that gets a
message from a Macromedia Flash Player to launch an
application that is associated with a flash button. When
the button is pressed, it launches the application, but
the app window is never completely in front. The C++ code
that I have been using to do this is below:
retVal =
CreateProcess(NULL,modName,NULL,NULL,FALSE,NULL,NULL,NULL,&s
i,&pi);
hProc = pi.hProcess;
procID = pi.dwProcessId;
HPStruct.procID = procID;
HPStruct.WindHandle = 0;
fp = fopen(THREAD_LOG_FILE,"a+");
fprintf(fp,"ProcID=%d\n",procID);
fclose(fp);
WaitForInputIdle(hProc,INFINITE);
EnumWindows((WNDENUMPROC)EnumOpenWindows,(LPARAM)&HPStruct);
fp = fopen(THREAD_LOG_FILE,"a+");
fprintf(fp,"After EnumWindows \n");
fclose(fp);
if(HPStruct.WindHandle != 0)
{
ShowWindow(HPStruct.WindHandle,SW_SHOWMAXIMIZED);
retVal = BringWindowToTop(HPStruct.WindHandle);
}
Is there something with the flash player that
stops the app from being in front? When I have other
windows open and launch the app, it will always be in
front of any other window BUT the flash player window.
Any suggestions?
New process is not foreground process. That's why
BringWindowToTop cannot overcome currently foreground
process. First, you need to relinquish your foreground
rights in favor of new process, then bring new window to
front. Read more about it in SetForegroundWindow and
AllowSetForegroundWindow functions description.
HTH
Alex