Вопрос

Я использую 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

Это установит процесс до начала в каталоге, в котором он содержится, вместо текущего каталога.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top