none
在Process.Start中如何隐藏执行程序 RRS feed

  • 问题

  • Code Snippet

    Public Class Main

        Private Sub btnEIP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEIP.Click

     


            Dim proRestart As New Process()


            proRestart.StartInfo.WindowStyle = ProcessWindowStyle.Hidden  '不显示窗体
            Dim strArgument As String = "-r -f -t 50" '启动参数
            Process.Start("shutdown.exe", strArgument) '执行

     


        End Sub
    End Class

     

     

    这样不可以啊,执行后总是有个讨厌的黑窗口一闪,我试着修改

    proRestart.StartInfo.CreateNoWindow=True

    也不起作用...

    所以请高手指教
    2008年4月15日 3:38

答案

  • 可以这样(这里只是举个例子):

    Code Snippet

     

    Dim proRestart As New Process()


    proRestart.StartInfo.WindowStyle = ProcessWindowStyle.Hidden  '不显示窗体
    proRestart.StartInfo.UseShellExecute = True
    Dim strArgument As String = " /c dir c: > c:\11.txt" '启动参数
    proRestart.StartInfo.Arguments = strArgument
    proRestart.StartInfo.CreateNoWindow = True
    proRestart.StartInfo.FileName = "c:\windows\system32\cmd.exe"

    proRestart.Start() '执行

     

     

    2008年4月15日 5:15
    版主
  • Process.Start("shutdown.exe", strArgument) 。

    这里已经调用 Process 静态函数,相当于简单执行了一下系统命令。而跟您之前设置proRestart.StartInfo就没有关系了。

    所以控制不了proRestart进程启动时的窗口状态。

     

    应该在proRestart.StartInfo 成员中设置启动命令和参数。

    然后才执行改进程。这样进程启动"proRestart.Start()"时,会自动读取您之前的设置。

     

    2008年4月15日 15:49

全部回复

  • 可以这样(这里只是举个例子):

    Code Snippet

     

    Dim proRestart As New Process()


    proRestart.StartInfo.WindowStyle = ProcessWindowStyle.Hidden  '不显示窗体
    proRestart.StartInfo.UseShellExecute = True
    Dim strArgument As String = " /c dir c: > c:\11.txt" '启动参数
    proRestart.StartInfo.Arguments = strArgument
    proRestart.StartInfo.CreateNoWindow = True
    proRestart.StartInfo.FileName = "c:\windows\system32\cmd.exe"

    proRestart.Start() '执行

     

     

    2008年4月15日 5:15
    版主
  • Process.Start("shutdown.exe", strArgument) 。

    这里已经调用 Process 静态函数,相当于简单执行了一下系统命令。而跟您之前设置proRestart.StartInfo就没有关系了。

    所以控制不了proRestart进程启动时的窗口状态。

     

    应该在proRestart.StartInfo 成员中设置启动命令和参数。

    然后才执行改进程。这样进程启动"proRestart.Start()"时,会自动读取您之前的设置。

     

    2008年4月15日 15:49
  •        

    Code Snippet

    Dim proRestart As New Process()


            proRestart.StartInfo.WindowStyle = ProcessWindowStyle.Hidden ‘隐藏窗体

            proRestart.StartInfo.FileName = "c:\windows\system32\shutdown.exe" '执行程序
            proRestart.StartInfo.Arguments = "-r -f -t 50" '参数
            proRestart.Start() '执行

     

     

    谢谢前辈指教,o(∩_∩)o...
    2008年4月16日 5:12