Как правильно запустить приложение Фото на Windows 10 из Dotnet - PullRequest
0 голосов
/ 28 февраля 2019

Из моего приложения WinForms я могу открывать документы, используя этот код:

using (Process process = new Process())
{
    ProcessStartInfo startInfo = new ProcessStartInfo();
    process.StartInfo = startInfo;
    startInfo.FileName = fileName;
    process.Start();
}

Теперь, если переменная fileName содержит полный путь к файлу .jpg, то в Windows 10 она открывается с некоторымиПриложение под названием Photos
Это работает, но у него есть одна проблема, которую я не понимаю.

Когда я открываю картинку в проводнике Windows, дважды щелкнув по картинке, приложение Photos открывается и показывает картинку,Он также имеет кнопки навигации слева / справа от изображения.Используя эти кнопки, я вижу предыдущее / следующее изображение в этой папке.
Если я выберу SlideShow, он покажет все изображения в этой папке

Когда я открою изображение, используя код выше, то же самоеПриложение Photos открывается и показывает изображение, но на этот раз без кнопок навигации слева / справа от изображения.
Если я выберу SlideShow, будет отображаться только это изображение, пока в этой папке есть другие.

Итак, мой вопрос: как я могу вернуть эти навигационные кнопки?
Кроме того, могут быть другие типы файлов, кроме .jpg в переменной fileName.
Мне нужен общий метод, которыйоткроет каждый файл с установленной по умолчанию ассоциацией в windows.

В Windows 7 и 8 это никогда не было проблемой, всегда появлялись кнопки навигации.Это ведет себя только в Windows 10

РЕДАКТИРОВАТЬ
Если мне нужно использовать другой код для открытия изображений, чем для других документов, я готов это сделать.
Я всегда могу проверить расширениефайл первый

1 Ответ

0 голосов
/ 28 февраля 2019

Возможно, вам также нужно установить рабочую директорию нового процесса в папку, в которой находится образ.

Это будет выглядеть примерно так

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = fileName;
startInfo.WorkingDirectory = Path.GetDirectoryName(fileName);

process.StartInfo = startInfo;
process.Start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...