.NET 中 System.Diagnostics.Process 类应用中碰到的问题(续)

经过一番研究,终于找到了有没有Word实例运行的情况下都能实现上一篇文章中的要求的方法,代码如下:
None.gif              string  tempPath  =  System.Environment.GetEnvironmentVariable( " TEMP " );
None.gif            
string  fileName  =  Path.Combine ( tempPath,  " 推理01.doc " );
None.gif            
string  winwordPath  =   "" ;
None.gif
None.gif            
//  判断系统中是否已经有 Word 实例在运行。
None.gif
            Process[] wordProcesses  =  Process.GetProcessesByName( " winword " );
None.gif            
foreach  ( Process process  in  wordProcesses)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif {
InBlock.gif                Debug.WriteLine( process.MainWindowTitle );
InBlock.gif                winwordPath 
= process.MainModule.FileName;        // 如果有的话获得 Winword.exe 的完全限定名称。
InBlock.gif
                break;
ExpandedBlockEnd.gif            }

None.gif
None.gif            Process wordProcess 
=   new  Process();
None.gif
None.gif            
if  ( winwordPath.Length  >   0  )     //  如果有 Word 实例在运行,使用 /w 参数来强制启动新实例,并将文件名作为参数传递。
ExpandedBlockStart.gifContractedBlock.gif
             dot.gif {
InBlock.gif                wordProcess.StartInfo.FileName 
= winwordPath;
InBlock.gif                wordProcess.StartInfo.UseShellExecute 
= false;
InBlock.gif                wordProcess.StartInfo.Arguments 
= fileName + " /w";
ExpandedBlockEnd.gif            }

None.gif            
else                              //  如果没有 Word 实例在运行,还是
ExpandedBlockStart.gifContractedBlock.gif
             dot.gif {
InBlock.gif                wordProcess.StartInfo.FileName 
= fileName;
InBlock.gif                wordProcess.StartInfo.UseShellExecute 
= true;
ExpandedBlockEnd.gif            }

None.gif
None.gif            wordProcess.Start();
None.gif            wordProcess.WaitForExit();        
//  当前进程一直在等待,直到该 Word 实例退出。
None.gif
            wordProcess.Close();
None.gif

转载于:https://www.cnblogs.com/rickysong/archive/2006/04/07/369536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值