Process.start System.nullreferenceexception: ссылка на объект не установлена ​​для экземпляра объекта - PullRequest
0 голосов
/ 16 ноября 2011

Хорошо, поэтому я пытаюсь запустить процесс со следующими параметрами

Когда я пытаюсь запустить его, я получаю System.nullreferenceexception: ссылка на объект не установлена ​​на экземпляр объекта

Что я делаю не так?

   Dim exepath As String = Application.StartupPath + "\bin\ffmpeg.exe"
    Dim sr As StreamReader
    Dim cmd As String = " -i """ + input + """ -ar 22050 -y """ + output + """"
    Dim ffmpegOutput As String
    proc.StartInfo.FileName = exepath
    proc.StartInfo.Arguments = cmd
    proc.StartInfo.UseShellExecute = False
    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    proc.StartInfo.RedirectStandardError = True  'redirect ffmpegs output 
    'to our application
    proc.StartInfo.RedirectStandardOutput = True 'we don’t really need this
    proc.StartInfo.CreateNoWindow = True
    proc.Start() 

1 Ответ

0 голосов
/ 17 ноября 2011

Ваш StreamReader не инициализирован:

 Dim sr As StreamReader

Убедитесь, что вы инициализируете его, прежде чем использовать его в коде.

Редактировать:

Поскольку вы указываете, что исключение выдается на proc.Start(), я бы предложил вам объявить ProcessStartInfo и использовать его с Process.Start()

Например:

Dim l As New ProcessStartInfo
l.FileName = exepath
' ...
Process.Start(l)
...