日期:2014-05-18  浏览次数:20985 次

请问如何用什么代码能实现把运行的别人的程序最大化?
假如在我机器上面我运行了一个别人的程序并且最小划了,我想自己写一个程序一点按纽就实现将运行的别人的这个程序最大化?如何用自己的程序实现将别人的程序最大化哦?

------解决方案--------------------

打开并激活已存在程序窗口
http://blog.csdn.net/hbxtlhx/archive/2005/06/07/389358.aspx
------解决方案--------------------
using System.Runtime.InteropServices;

[DllImport( "user32.DLL ")]
public static extern IntPtr FindWindow(string lpszClass, string lpszWindow);

[DllImport( "user32.dll ")]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MINIMIZE = 61472;
public const int SC_MAXIMIZE = 61488;

private void button1_Click(object sender, EventArgs e)
{
IntPtr vHandle = FindWindow( "Notepad ", null); // 以记事本为例
SendMessage(vHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
}
------解决方案--------------------
FindWindow是一个windows API函数,用来查找窗口句柄的。两个参数分别为窗体的的类名和窗口名。

所以只要把四楼的代码里FindWindow( "Notepad ", null); Notepad换成你那个程序的窗体类名就行了。怎么找类名,可以使用spy++这个工具,在vs的安装目录里有,开始菜单里可以找到。