Vb.net 在程序的新实例中打开文件
全部 我写了一段代码,当我扫描条形码时,它会打开一个设计蓝图。它工作得很好,但我想打开一个新的设计软件实例(Solidworks),并在新实例中显示打印。现在,无论我打开了多少Solidworks实例,打印只会在第一个实例中打开 下面注释掉的那行是有效的,只是不在正确的实例中。下面这一行是我希望使用的,但它返回一个“未找到文件”,即使solidworks的路径和打印路径都是正确的 如果能解释一下为什么这样做不起作用,我将不胜感激,因为我显然对这一点非常陌生……而且不知道我在做什么Vb.net 在程序的新实例中打开文件,vb.net,cad,solidworks,Vb.net,Cad,Solidworks,全部 我写了一段代码,当我扫描条形码时,它会打开一个设计蓝图。它工作得很好,但我想打开一个新的设计软件实例(Solidworks),并在新实例中显示打印。现在,无论我打开了多少Solidworks实例,打印只会在第一个实例中打开 下面注释掉的那行是有效的,只是不在正确的实例中。下面这一行是我希望使用的,但它返回一个“未找到文件”,即使solidworks的路径和打印路径都是正确的 如果能解释一下为什么这样做不起作用,我将不胜感激,因为我显然对这一点非常陌生……而且不知道我在做什么 Private
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
Try
Dim barcode As String = tb_barcode.Text
Dim filename As String = tb_barcode.Text
'Add File Extension to end of path
Dim ext As String = ".SLDDRW"
'Split job number from detail number in barcode textbox
barcode = Split(tb_barcode.Text, ".")(0)
filename = Split(tb_barcode.Text, ".")(1)
'- This works, just in primary instance
'System.Diagnostics.Process.Start("G:\Fixtures\" & barcode & "\Details\" & barcode & " DET " & filename & ext)
'- This does not work
System.Diagnostics.Process.Start("'C:\Program files\Solidworks Corp\Solidwork\SLDWORKS.exe' 'G:\Fixtures\" & barcode & "\Details\" & barcode & " DET " & filename & ext + "'")
Catch
MessageBox.Show("File Not Found")
End Try
End Sub
很抱歉这种幼稚的方法,但过程中不应该有逗号。从两个参数之间开始
Start(String, String)
通过指定应用程序的名称和一组命令行参数启动流程资源,并将资源与新流程组件关联 为什么不使用返回应用程序路径及其全名的
应用程序.ExecutablePath
。那么你的代码应该是
System.Diagnostics.Process.Start(Application.Executablepath, "G:\Fixtures\" & barcode & "\Details\" & barcode & " DET " & filename & ext + "'")
还要确保第二个字符串参数是有效路径 没必要道歉!我已经试过逗号,但似乎也不起作用:System.Diagnostics.Process.Start(“C:\Program files\Solidworks Corp\Solidwork\SLDWORKS.exe”、“G:\Fixtures\”&barcode&“\Details\”&barcode&“DET”&filename&ext)字符串中需要逗号和引号作为空格字符:否则它会试图打开不存在的“C:\Program”。