AppActiveは必要なことを行います。
Module Module1
Sub Main()
Dim processId As Integer = System.Diagnostics.Process.GetCurrentProcess().Id
Console.WriteLine("Starting Google")
System.Diagnostics.Process.Start("www.google.com")
System.Threading.Thread.Sleep(1000)
Console.WriteLine("Get Focus Back on Process {0}", processId)
Microsoft.VisualBasic.Interaction.AppActivate(processId)
Console.Write("Press any key")
Console.ReadKey()
End Sub
End Module
F#でMicrosoft.VisualBasicへの参照を追加することを忘れないでください
AppActivate http://msdn.microsoft.com/en-us/library/x9784w8e.aspx
多くのユーザーは、コマンドラインからコンソールプログラムを実行するときにAppActivateで問題に直面しています。これに対する答えは次のとおりです(AppActivate documentantionから):
AppActivateは、ウィンドウを所有するプロセスでのみ使用できます。ほとんどのコンソールアプリケーションはウィンドウを所有していません。つまり、AppActivateが検索するプロセスのリストにウィンドウは表示されません。コンソールアプリケーションから実行する場合、システムはアプリケーションを実行するための別のプロセスを作成し、出力をコンソールプロセスに返します。したがって、現在のプロセスIDを要求すると、コンソールアプリケーションのプロセスIDではなく、この個別のプロセスのプロセスIDが取得されます。