Есть ли способ запустить WinWord, чтобы открыть файл в качестве защищенного режима/просмотра?
Я не использую Word Automation - просто запускаю документ, который заставляет Winword.exe начинаться с С#.
Вот код
Process wordProcess = System.Diagnostics.Process.Start("C:\\\\check.docx");.
Что я добавил, чтобы дать WinWord возможность нормально не открывать файл, а вместо этого показывать панель ProtectedView в верхней части документа?
Существует глагол в Word 2010 и называется ViewProtected
.
string path = @"c:\path\to\file";
string file = "check.docx";
ProcessStartInfo psi = new ProcessStartInfo(Path.Combine(path, file));
psi.Verb = "ViewProtected";
Process wordProcess = System.Diagnostics.Process.Start(psi );
Или вы можете использовать опцию командной строки /vp
[path to winword.exe]\WinWord.exe /vp "c:\path\to\file\check.docx";
Для более ранних версий нет аргументов или глаголов командной строки, которые позволяют вам открыть файл в protectedmode.
Вы можете использовать глагол OpenAsReadOnly
или использовать обходной путь, чтобы скопировать исходный файл и пометить его только для чтения на диске перед открытием. Следующий код демонстрирует, что:
string path = @"c:\Your\Path\to\the\file";
string file = "check.docx";
// make copy
string tmp = Path.GetTempFileName().Replace(".tmp", Path.GetExtension(file));
File.Copy(Path.Combine(path,file), tmp );
// make it Read-Only
File.SetAttributes(tmp, FileAttributes.ReadOnly);
// Open the copy
Process wordProcess = System.Diagnostics.Process.Start(tmp );
wordProcess.EnableRaisingEvents = true;
// remove the file as soon as the process ends
wordProcess.Exited += (o, args) =>
{
File.SetAttributes(tmp, FileAttributes.Normal);
File.Delete(tmp);
};