日期:2014-05-20  浏览次数:21061 次

怎样启动和关闭外部程序
要求,打开多个IE,EXCEL,WORD等外部程序(文件),
并且能关闭其中的任意一个。

1,试了一下Process类,启动程序好用,关闭就不好用了。

2,用老的API,WM_HIDE,WM_CLOSE等都不能用了。

急呀,请回高手赐教!



------解决方案--------------------
1.Process类打开关闭都没问题 估计是你代码的问题

2.API WM_HIDE不知道为什么,我调一些程序就怎么也隐藏不了,一些程序就可以隐藏 很怪异
------解决方案--------------------
高手
------解决方案--------------------
mark
------解决方案--------------------
据我所知,好像只能用process.
------解决方案--------------------
你如果是在任务中的应用程序中的话,而不是在进程中的话可以试试这个方法。

System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcessesByName( "你打开的程序名字 ");
ps[0].CloseMainWindow();
------解决方案--------------------
打开:
Process.Start( "iexplore.exe ", "http://www.baidu.com ");

关闭:
Process[] ps = Process.GetProcessesByName( "iexplore ");
if (ps.Length > 0)
{
foreach (Process os in ps)
os.Kill();
}

注意:在.Net1.1中GetProcessesByName中的参数是iexplore.exe
在.Net2.0中GetProcessesByName中的参数是iexplore
------解决方案--------------------
ProcessStartInfo info = new ProcessStartInfo( "你的程序 ");
info.WindowStyle = ProcessWindowStyle.Hidden;
Process process = Process.Start(info);

process.CloseMainWindow(); //这个就关闭了你的程序

在MSDN中查查 ProcessStartInfo和Process就OK了

------解决方案--------------------
上面说的不错,但是如果是excel的话,因为它是一个excel application,启动了多个workbook,所以如果想要关对应的excel文件,关闭对应的workbook就可以了.
------解决方案--------------------
打开
pro1=Process.Start( "excel.exe ",@ "d:\1.xls ");
pro2=Process.Start( "excel.exe ",@ "d:\2.xls ");

关闭1
pro1.CloseMainWindow();
关闭2
pro2.CloseMainWindow();
------解决方案--------------------
没有接触过这个方面的知识,学习中。。。。
------解决方案--------------------
这个问题,学习一下,关闭文档,感觉应该有办法,想不到
------解决方案--------------------
如果象Excel这种Mid窗体关一个,暂时不知道咋办...
------解决方案--------------------
学习,之前也有类似的疑惑。还没有解决方法。估计要通过找进程的id了吧。
------解决方案--------------------
不会吧,发送WM_CLOSE会不起作用?
[DllImport( "User32.dll ")]
public static extern int PostMessage(int hWnd, int uMsg, int wParam, int lParam);
public const int WM_CLOSE=0x0010;
不会是将常量搞错了吧?
先用findwindow找到要关闭的子窗口句柄,然后PostMessage或sendmessage就应该能OK的了
------解决方案--------------------
帮顶.
------解决方案--------------------
可以试试:
用process启动一个cmd,然后直接用taskkill来关闭程序
------解决方案--------------------
up