私はプログラムで単語ファイルを開いて検索し、キーワードを強調表示しています。私のルーチンは正常に機能しています。問題は、プログラムでファイルを開いているときにダイアログが表示され、ファイルを読み取り専用モードで開くように求められることです。ダイアログは次のようになります
実際には、ファイルを開いて変更したり保存したりできるため、ファイルを読み取り専用モードで開きたくありません。ファイルを読み取り専用モードで開かないようにできることを教えてください。
これが私の完全なコードです。見て、コードの何が問題なのかを教えてください。または、その結果、読み取り専用モードでなくファイルを開くことができるトリックを教えてください。これが私のコードです。
private void button1_Click(object sender, EventArgs e)
{
object fileName = "";
string filePath = "";
string strSaveasPath = "";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
fileName = openFileDialog1.FileName;
//strSaveasPath = Path.GetDirectoryName(path.ToString());
}
//fileName = "Z:\\C0000000003.doc";
List<string> _list = new List<string>();
_list.Add("tridip");
_list.Add("arijit");
//object fileName = "D:\\CVArchievePath\\C0000000001.doc";
object textToFind = "test";
object readOnly = false;
Word.Application word = new Word.Application();
Word.Document doc = new Word.Document();
object missing = Type.Missing;
try
{
doc = word.Documents.Open(ref fileName, ref missing, ref readOnly,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing);
doc.Activate();
object matchPhrase = false;
object matchCase = false;
object matchPrefix = false;
object matchSuffix = false;
object matchWholeWord = false;
object matchWildcards = false;
object matchSoundsLike = false;
object matchAllWordForms = false;
object matchByte = false;
object ignoreSpace = false;
object ignorePunct = false;
object highlightedColor = Word.WdColor.wdColorGreen;
object textColor = Word.WdColor.wdColorLightOrange;
object missingp = false;
Word.Range range = doc.Range();
foreach (string line in _list)
{
textToFind = line;
bool highlighted = range.Find.HitHighlight(ref textToFind,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing,
ref missing);
}
System.Diagnostics.Process.Start(fileName.ToString());
}
catch (Exception ex)
{
Console.WriteLine("Error : " + ex.Message);
//Console.ReadKey(true);
}
finally
{
//doc.Close(missing, missing, missing);
if(doc!=null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
if (word != null)
System.Runtime.InteropServices.Marshal.ReleaseComObject(word);
word = null;
doc = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
}