Utilizo o seguinte metodo para iniciar um processo:
//Abre um aplicativo externo dentro do windowspublicvoid AplicativoExterno(string endereco) {try { processo = new Process(); processo.StartInfo.FileName = endereco; processo.EnableRaisingEvents = true; processo.StartInfo.CreateNoWindow = false; processo.Exited += new EventHandler(processo_Exited); processo.Start(); processo.WaitForInputIdle(); int windowHandle = processo.MainWindowHandle.ToInt32();while (windowHandle == 0) { processo.Refresh(); windowHandle = processo.MainWindowHandle.ToInt32(); } SetParent(processo.MainWindowHandle, Base.frmPrincipal.Handle); Base.frmPrincipal.Activate(); Base.Tarefas.Adicionar(processo.MainWindowTitle, processo.MainWindowHandle); }catch(Win32Exception) { MessageBox.Show(Base.principal.buscaMensagem(337), Base.principal.buscaMensagem(34), MessageBoxButtons.OK, MessageBoxIcon.Error); } }