Процесс. Запустите PDF в папке - PullRequest
0 голосов
/ 19 октября 2018

Я не могу заставить Process.Start просто запустить PDF со средством просмотра PDF по умолчанию.

Я пробовал так много комбинаций выполнения оболочки, рабочей папки и т. Д. И т. Д. Появляется либо «Система не может найти»указанный файл 'или' имя каталога неверно '

private void button1_Click(object sender, EventArgs e)
     {
        string filename = @"Milking and cooling software set 2018-39.pdf";
        MessageBox.Show(currentpath + @"\Astronaut A5 v1.5(b7)\documentation\" + filename);
        fullpath = currentpath + @"\Astronaut A5 v1.5(b7)\documentation";
        fullfile = fullpath + filename;
        ProcessStartInfo process = new ProcessStartInfo();
        process.WorkingDirectory = fullpath;
        process.UseShellExecute = false;
        process.FileName = fullfile;
        process.RedirectStandardOutput = true;
        process.Verb = "run as";
        Process.Start(process);
     }

Почему это так сложно, я часами пытался просто запустить Acrobat Reader, чтобы открыть файл PDF.Я могу дважды щелкнуть по нему без проблем в его местоположении, но C # не может открыть его, либо я получаю ошибки .NET, либо Adobe открывает и говорит, что не может найти файл.Пробовал так много комбинаций "\" ", полный путь, жестко закодированный путь и т. Д. И т. Д. ... невероятно, что это так трудно кодировать в наше время.

1 Ответ

0 голосов
/ 19 октября 2018

Вы сказали системе не использовать ShellExecute.Это означает, что путь, который вы указываете, должен быть действительной исполняемой программой.PDF не так, если вы хотите открыть его с помощью программы чтения по умолчанию, используйте ShellExecute.

process.UseShellExecute = true;

Также использование «запустить как» в качестве глагола здесь не имеет никакого смысла, если только для глаголов PDF не существует такого глагола, который, я уверен, не существует.Это должно быть удалено.

...