注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

More Than Programmer

do more and more,beyond programmer... ..

 
 
 

日志

 
 
关于我

每天进步一点,让自己活得充实!

网易考拉推荐
 
 

(MARK)要求,打开多个IE,EXCEL,WORD等外部程序   

2008-11-28 11:58:42|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

要求,打开多个IE,EXCEL,WORD等外部程序(文件),

并且能关闭其中的任意一个。

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

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

急呀,请回高手赐教!

回答:

1.Process类打开关闭都没问题   估计是你代码的问题

2.API   WM_HIDE不知道为什么,我调一些程序就怎么也隐藏不了,一些程序就可以隐藏     很怪异

回答:

高手

回答:

打开多个EXCEL文件,启动的process.Start();方法只启动一个Process

请问怎样分别关闭不同的文件,而不是用CloseMainWindow()方法?

回答:

mark

回答:

为什么?

API的CloseWindow()方法,可以实现最小化;

但是,DestroyWindow方法,就不能实现关闭窗口呢?

回答:

像EXCEL和DWORD之类的MDI程序,怎样分别控制每个子窗口,分别关闭他们。

用CloseMainWindow方法,EXCEL就把所有的全关了;关WORD则会出错。

回答:

据我所知,好像只能用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

回答:

使用Process.Start()方法

打开多个EXCEL文档   1.xls     ,     2.xls     ,   3.xls   等

启动的都是同一个进程,

再用Process.CloseMainWindow()方法,会把上面3个文档都关掉;

怎样关掉3个中,自己想要关掉的那一个呢?

回答:

ProcessStartInfo       info       =       new       ProcessStartInfo("你的程序");      

    info.WindowStyle       =       ProcessWindowStyle.Hidden;      

    Process       process       =       Process.Start(info);  

     

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

在MSDN中查查   ProcessStartInfo和Process就OK了

回答:

补一下       用ProcessStartInfo来标识你的程序

回答:

上面说的不错,但是如果是excel的话,因为它是一个excel   application,启动了多个workbook,所以如果想要关对应的excel文件,关闭对应的workbook就可以了.

回答:

//启动EXCEL1

ProcessStartInfo   pInfoE1   =   new   ProcessStartInfo("D:\\1.xls");

Process   pE1   =   Process.Start(pInfoE1);

//启动EXCEL2

ProcessStartInfo   pInfoE2   =   new   ProcessStartInfo("D:\\2.xls");

Process   pE2   =   Process.Start(pInfoE2);//这时,pE2就返回null了

//关闭EXCEL1

pE1.CloseMainWindow();//两个Excel都被关了,但是只想关第一个

咋办呢?

回答:

打开

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来关闭程序

回答:

感谢harry_qj()提供的方法

但是,如果用户设置里面,只有文件名1.xls

怎样得到"excel.exe"呢?

查找注册表,能否得到扩展名.xls相关联的应用程序:excel.exe呢?

回答:

up

回答:

太郁闷了!

Excel的问题解决了。

微软的WORD,POWERPOINT的情况都不一样啊,还是没办法;

只有ACCESS和EXCEL一样,可以搞定。

咋办呢!

请各位高手不吝赐教啊!

  评论这张
 
阅读(698)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017