Как использовать процесс .start
-
01-10-2019 - |
Вопрос
Я использую Process.Start для запуска Convertress.exe. Цель этой программы является преобразование всех файлов, которые находятся в папке EXE. Поэтому, когда я обычно использую его, я копирую вставьте файл в одну и ту же папку, что и convert.exe, а затем запустите Convertrod.exe. Convert.exe создаст новый «преобразованный» файл в той же папке.
Я пытаюсь автоматизировать этот утомительный процесс. Пользователь выбирает файл, который должен быть преобразован из Foldera, я копирую его в одну и ту же папку, где Converty.exe есть, и я использую Process.Start (Convert.exe), чтобы запустить его. Просто чтобы быть понятным, этот «Convert.exe» не принимает аргументов.
Проблема: «Convert.exe» не преобразует файлы в его папке. Вместо этого он преобразует все файлы в Foldera для некоторой странной причины. Я не знаю, почему он выбрал эту папку, я никогда не пытался отправить ее как аргумент или ничего.
Вот код у меня есть:
Dim techInfo As New System.IO.FileInfo(itm.strFilePath)
techInfo.CopyTo(ConverterPath & techInfo.Name)
Dim procInfoConvert As New ProcessStartInfo
procInfoConvert.CreateNoWindow = False
procInfoConvert.Arguments = ""
procInfoConvert.FileName = ConverterPath & "Convert.exe"
Dim procConvert As Process = Process.Start(procInfoConvert)
Я провел тест, где я копирую вставленный файл в папку «Convert.exe», а затем запустить этот код:
process.start(ConverterPath & "Convert.exe")
EXE не возвращается так же, как если бы не было файлов в папке.
Единственное, о чем я могу думать, это то, что когда Process.Start работает, он копирует файл в другое место и запускает его оттуда.
Любые идеи кто-нибудь?
Решение
Попробуй это:
procInfoConvert.WorkingDirectory = ConverterPath
Это установит процесс до начала в каталоге, в котором он содержится, вместо текущего каталога.