在vb.net中,我试图找到一种可靠的方式来在隐藏,最小化,正常或最大化的窗口(由用户提前确定)中启动新过程。
下面的代码,正确设置了MyWindowProcessingStyle的值,有时可能会起作用,但其他情况下不会起作用:
Dim MyWindowsProcessingStyle As ProcessWindowStyle = ProcessWindowStyle.Maximized
' the above set elsewhere to values of minimized, maximized, hidden, and normal
Dim MyProcess as new Process
Dim MyProcessStartInfo As New ProcessStartInfo
With MyProcessStartInfo
.FileName = Program
.Verb = "open"
.CreateNoWindow = True
.WindowStyle = MyWindowProcessingStyle
.UseShellExecute = True
End With
myProcess.Start(MyProcessStartInfo)
例如,如果我用它来启动批处理文件(.bat),则它可以100%可靠地工作。
但是,如果我用它来启动窗口的计算器,那么它根本就无法工作。它只是以与上次运行相同的方式打开窗口的计算器。
出于与我的应用程序工作方式相关的原因,我需要与MyProcessStartInfo的其他部分保持联系。因此,this observation对我不利。
我试图在应用程序启动后向其发送击键,例如(WIN)(DownArrrow)以使事实发生后的应用程序最小化-尽管这在许多情况下是有问题的,但在另一些情况下却存在问题。 / p>
我也曾尝试获取启动后的进程ID或应用程序的句柄,希望此后我可以使用各种Pinvolke方法来获得所需的信息-但可悲的是,我失败了
任何帮助将不胜感激。