Открываем исходный документ(не копию) в новом экземпляре Word
Введение
Задачи программиста могут быть максимально узконаправленными и со своими нюансами, так и мне выпала честь сделать функционал открытия документа, звучит легко, однако сложности добавляет тот факт, что документ должен ОТКРЫВАТЬСЯ, не его внутренняя копия от Word, и не в одинаковом PID, в котором открыты другие документы…
Решение?
Для начала поймем, какой параметр нам необходим для нашей задачи из этого списка
Методом проб и ошибок, был выявлен нужный нам параметр, это /t
И в чем же может быть проблема? Все что нам остается это пробросить этот аргумент с путем к нашему файлу и запустить процесс
myProcess.StartInfo.Arguments = $"/t" + "\"" + filePath + "\"";
Word запускается отдельным процессом, содержание файла одинаково, все работает как надо… или нет?
Как же понять, что мы открыли текущий документ не правильно? Тут есть две зацепки.
1 В шапке экземпляра процесса вместо имени открываемого документа - “Документ 1”
2 При CTRL+S открывается диалоговое окно “Сохранить как”
Что по сути говорит нам, что документ который мы открыли, не исходный, а лишь так скажем, “полная” копия.
Решение!
Были исследованы сотни вкладок документации от Microsoft, столько же примеров кода из github, ничего не давало результат.
Только в очередной раз методом проб и ошибок. Пробовал добавлять в StartInfo.Arguments несколько аргументов, через +=
, с/без экранированных символов, и наконец смог подобрать правильную комбинацию.
myProcess.StartInfo.Arguments = $"/t \"{filePath}\"";
Наконец после запуска нескольких экземпляров, мы можем увидеть 3 процесса с правильными шапками.
Пост был быстр, надеюсь лаконичен.
У вас возник наверное вопрос вроде: “а зачем нам в принципе этим заниматься, неужели нам не достаточно открывать все файлы в одном экземпляре Word’а но в разных окнах? “.
И я вам с радостью отвечу! Дело в том что [ДАННЫЕ УДАЛЕНЫ]