من نقطه رو که میزنم فقط save;save as ;saveas2000 داره به همین دلیل تابع saveas2 رو نمیشناسه.
حالا من کد رو طبق فرمایش شما تغییر دادم بدین صورت: دکمه باز کردن نرم افزار ورد:
Microsoft.Office.Interop.Word.Application oWordApp = new Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document oWordDoc = new Microsoft.Office.Interop.Word.Document();
Object oMissing = System.Reflection.Missing.Value;
oWordDoc = oWordApp.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
oWordApp.Visible = true;
دکمه ثبت فایل ورد:
Object oSavePath = (Object)String.Format("{0}\\1.docx", System.Windows.Forms.Application.StartupPath);
oWordDoc.SaveAs(ref oSavePath, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing);
Object oFalse = false;
oWordDoc.Close(ref oFalse, ref oMissing, ref oMissing);
oWordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
byte[] FileBuffer = System.IO.File.ReadAllBytes(oSavePath.ToString());
System.IO.File.Delete(oSavePath.ToString());
دکمه نمایش فایل ذخیره شده:
Class1.con.Open(); Class1.str1 = "select top 1 Qts from Quastion where l_code=" + Convert.ToInt32(comboBox3.SelectedValue);
Class1.da = new System.Data.OleDb.OleDbDataAdapter(Class1.str1, Class1.con);
Class1.da.Fill(Class1.dsclass);
Class1.con.Close();
if (Class1.dsclass.Tables[0].Rows.Count > 0)
{
byte[] Bytes = (byte[])Class1.dsclass.Tables[0].Rows[0][0];
string FilePath = string.Format("{0}\\1.docx", Application.StartupPath);
System.IO.File.WriteAllBytes(FilePath, Bytes);
var viewer = System.Diagnostics.Process.Start(FilePath);
// حذف فایلی که ساختیم درست بعد از بستن نرم افزار ورد
viewer.EnableRaisingEvents = true;
viewer.Exited += (o, args) =>
{
System.IO.File.Delete(FilePath);
};
}
موقعی که نمایش فایل رو میزنم این پیغام رو نشون میده چون فایل رو پاک میکنه: