var pro = new Process();
pro.StartInfo.Arguments = filePath;//文件路径
pro.StartInfo.FileName = exePath;//exe路径
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardOutput = false;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.CreateNoWindow = false;
pro.Start();
采用指定exe打开特定文件的方式。
我项目中先打开了一个ptf后打开了一个word,在进程切换时,打开ptf文件进程的MainWindowHandle可以在Process.GetProcesses()中找到。
但是打开word进程文件的MainWindowHandle就在Process.GetProcesses()中找不到了,这怎么解决?为什么会出现这个问题?
在进程启动的过程中,我也遇到了大家都遇到过的问题,那就是pro.MainWindowHandle=0,这里的采用进程睡眠的方式等待它不为零时再继续执行。
因为你打开的不是exe,而是一个文档,只不过这个文档在windows系统下设置好了默认启动程序,你打开这个文档,系统会自动调用相应的程序去打开它。
一个word文档当然没有对应的进程了
如果你想监视word进程,那你应该把exe路径指向word的exe,把真正的文件路径当做参数给进去。