отварям програмно файл с дума за търсене и подчертаване на ключова дума. моята рутина работи добре. проблемът е, когато отварям файла програмно, тогава идва диалогов прозорец и ме моли да отворя файла в режим само за четене. диалоговият прозорец изглежда като
всъщност не искам да отварям файла в режим само за четене, защото хората могат да отварят и обичат да променят и запазват. така че насочете ме какво мога да направя, за да не отварям файла в режим само за четене.
ето пълния ми код. просто погледнете и ми кажете какво не е наред в моя код или ми кажете някакъв трик, в резултат на което мога да отворя файла не в режим само за четене. ето моят код.
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();
}
}