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 文档):
您只能将 AppActivate 用于拥有窗口的进程。大多数控制台应用程序不拥有窗口,这意味着它们不会出现在 AppActivate 搜索的进程列表中。从控制台应用程序运行时,系统会创建一个单独的进程来运行应用程序并将输出返回到控制台进程。因此,当您请求当前进程 ID 时,您将获得此单独进程的进程 ID,而不是控制台应用程序的进程 ID。