我想在Process.Start(“”,“”)中传递文件名作为参数。但是,我的参数似乎不起作用。
这是我的代码:
Public Class Form1
Public Sub Button1_click(sender As Object, e As EventArgs) Handles btnClick.Click
Dim myFile0 As String = "C:\Users\Desktop\1.pdf"
Dim myFile2 As String = "C:\Users\Desktop\1s.pdf"
Process.Start("cmd.exe", "/k pdftk" & myFile & "output" & myFile2 & "owner_pw password")
这不起作用,但如果我使用文件路径而不是myFile0或myFile2,它可以正常工作。 我需要能够使用变量。
任何输入为什么它不起作用。我是vb.net的新手
谢谢!
答案 0 :(得分:2)
您忘记了文件名前后的空格。建议使用双引号强烈,以避免在路径名包含空格时出现问题。使用复合格式时,这总是更容易实现。修正:
Dim args = String.Format("/k pdftk {0}{1}{0} output {0}{2}{0} owner_pw password", _
"""", myFile, MyFile2)
Process.Start("cmd.exe", args)
答案 1 :(得分:1)
如果只在参数中指定了文件路径,Process.Start将尝试使用默认文件处理程序(例如Adobe for PDF文件)启动该文件。如果要使用参数启动特定程序,则应将可执行文件路径传递给处理.pdf文件的程序,命令行参数位于第二个参数中。
Process.Start(PathToPDFHandler,“/ k pdftk”& myFile&“output”& myFile2&“owner_pw password”)
类似的东西。