引擎盖下的OpenFileDialog

时间:2012-05-30 12:13:12

标签: vb.net openfiledialog

这是我在这里的第一个问题,因为我最终陷入了死胡同。 我正在使用ZIP 2 Secure EXE(来自Chilkat的非常好的软件)来创建应用程序的setup.exe。 ZIP 2安全EXE可以在没有带有一个或多个参数的GUI的情况下运行 问题是,当我调用ZIP 2安全EXE(ChilkatZipSE.exe)而不使用OpenFileDialog表单来确定ChilkatZipSE.exe的位置时,它不会运行System.Diagnostics.Process类的进程。我称之为ChilkatZipSE.exe的方式是“.. \ ChilkatZipSE.exe -cfg settings.xml”。使用settings.xml一切正常,并且创建setup.exe文件需要UnlockCode节点。当我使用OpenFileDialog时,ChilkatZipSE.exe会创建所需的setup.exe,并且工作正常 贝娄是我使用的代码:

Private Sub btnStartApp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStartApp.Click

    If txtExtAppPath.Text.Length > 0 AndAlso System.IO.File.Exists(txtExtAppPath.Text) Then

        Dim myFile As New FileInfo(txtExtAppPath.Text)
        txtExtAppLog.Text = StartApplication(myFile.FullName, txtExtParams.Text, chkIsHidden.Checked)
        'txtExtAppLog.Text = StartApplication(txtExtAppPath.Text, txtExtParams.Text, chkIsHidden.Checked)

    End If

End Sub

Public Function StartApplication(ByVal fileFullPath_ As String, ByVal fileParameter_ As String, ByVal isHidden_ As Boolean) As String

    Dim lassie As String = String.Empty

    Try

        Dim newProcess As New ProcessStartInfo()
        newProcess.FileName = fileFullPath_
        newProcess.Arguments = fileParameter_
        If isHidden_ Then newProcess.WindowStyle = ProcessWindowStyle.Hidden

        If System.IO.File.Exists(fileFullPath_) Then

            Using startedNewProcess As Process = Process.Start(newProcess)
                'startedNewProcess.EnableRaisingEvents = True
                startedNewProcess.WaitForExit()
            End Using

        Else

            lassie = "File " + fileFullPath_ + " doesn't exist."

        End If

    Catch ex As Exception

        lassie = ex.Message

    End Try

    Return lassie

End Function

谢谢,马格南克斯。

1 个答案:

答案 0 :(得分:0)

问题是给定的参数。使用OpenFileDialog时,它知道settings.xml的位置。但是在没有OpenFileDialog的情况下调用“.. \ ChilkatZipSE.exe -cfg settings.xml”时,它必须用作“.. \ ChilkatZipSE.exe -cfg .. \ settings.xml”