如何在C#中管理外部的Windows应用程序?

4
什么是在C#(或.NET)中管理外部Windows应用程序的最佳方法?
到目前为止,我已经能够使用System.Diagnostics.Process启动进程,但是这仅允许我启动/终止进程。 (根据我的了解)
我注意到System.Diagnostics.Process具有CloseMainWindow()例程,它将向进程的窗口发送请求。 我可以使用此Process类发送不同的消息吗? (如果可以,请问在哪里可以学习这些Windows消息)
我需要能够管理外部程序并以以下方式操纵它: 1)启动 2)终止进程 3)显示应用程序(全屏幕和任务栏中) 4)隐藏应用程序(全屏幕和在任务栏中)
更多详细信息: Windows 7,限制于.Net 3.5 Framework
4个回答

2

0
尝试向该窗口发送一条消息。查看 SendMessage。您需要的消息是SW_MINIMIZESW_RESTORESW_SHOWMAXIMIZED

0

你需要使用一些Win32 P/Invoke的东西来发送窗口消息,以便实现你想要的功能。

请参考这个代码示例ShowWindowSendMessage,它告诉外部窗口显示或隐藏自己。你首先需要使用FindWindowEx获取你想要的窗口句柄。


0

你可以用不同的方式完成你想要的操作,一旦你自己启动了进程或者在正在运行的进程列表中找到了它,就可以使用System.Diagnostics.Process类或方法来跟踪不同的选项...

例如,考虑一下一旦你有了这个句柄:Process.MainWindowHandle,你就可以使用SendMessagePostMessage向该句柄发送消息,这样你就可以做很多事情;或者你可以使用PInvoke API,如SetWindowPosShowWindowSetWindowLong,基本上可以做任何事情...

例如:

如何使用ShowWindow API隐藏和显示窗体

我可以给你更多的链接,但不想引用整个MSDN ;-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接