命名空间 :System.Diagnostics测试
之前在word的时候,常常碰到word进程产生一大堆,怕关错了,把用户本身打开的word也关闭,一直搞忽悠,今天上网花了10块钱,下了个文件,给我了一点启发,总于能够实现只关闭程序中打开的,,,我本身测试了,是能够实现的,各位也能够copy去试试,不行的话,给我留言。。。ui
//如下的定义为打开或保存word文件时,须要用到得参数orm
object confirmConversions = Type.Missing;
object readOnly = Type.Missing;
object addToRecentFiles = Type.Missing;
object passwordDocument = Type.Missing;
object passwordTemplate = Type.Missing;
object revert = Type.Missing;
object writePasswordDocument = Type.Missing;
object writePasswordTemplate = Type.Missing;
object format = Type.Missing;
object encoding = Type.Missing;
object visible = Type.Missing;
object openConflictDocument = Type.Missing;
object openAndRepair = Type.Missing;
object documentDirection = Type.Missing;
object noEncodingDialog = Type.Missing;
object missing = Type.Missing;
object filename = Filename;
object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges; //解决normal.dot问题对象
Microsoft.Office.Interop.Word._Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
Microsoft.Office.Interop.Word._Document wordDoc = null;
try
{
//打开Word文档对象
wordDoc = wordApp.Documents.Open(ref filename, ref confirmConversions, ref readOnly, ref addToRecentFiles, ref passwordDocument, ref passwordTemplate, ref revert, ref writePasswordDocument, ref writePasswordTemplate, ref format, ref encoding, ref visible, ref openConflictDocument, ref openAndRepair, ref documentDirection, ref noEncodingDialog);
wordDoc.AcceptAllRevisions(); //接收word中全部的修订
wordDoc.Save();//保存
wordDoc.Close(ref missing, ref missing, ref missing);
wordApp.Application.Quit(ref saveOption, ref missing, ref missing);
}
catch { }
finally
{进程
//杀死打开的word进程
Process myProcess = new Process();
Process[] wordProcess = Process.GetProcessesByName("winword");
try
{
foreach (Process pro in wordProcess) //这里是找到那些没有界面的Word进程
{
IntPtr ip= pro.MainWindowHandle;ip
string str = pro.MainWindowTitle; //发现程序中打开跟用户本身打开的区别就在这个属性
//用户打开的str 是文件的名称,程序中打开的就是空字符串
if (string.IsNullOrEmpty(str))
{
pro.Kill();
}
}
}
catch (Exception ex)
{
ex.ToString();
}
}
}
catch (Exception ex)
{
bl = false;
}文档