c# 嵌入一个外部程序 如何让这个外部程序启动时,窗口就最大化

我的项目中有form1有个panel打开外部程序a.exe到panel中如何让a.exe的窗口一打开就最大化另我点了a.exe程序的窗口最小化后a.exe程序就找不到了我... 我的项目中有form1 有个panel 打开外部程序a.exe到panel中 如何让a.exe的窗口一打开就最大化
另我点了a.exe程序的窗口最小化后 a.exe程序就找不到了 我想在form1中增加同a.exe专门绑定的最小 还原 最大 关闭 4个按钮 用来专门操作程序a.exe窗口该如何做

谢!
请给出代码 主要是最大化按钮 其它按钮还可在a.exe程序窗口中按 就是最小化后程序再无法最大化了
展开
 我来答
匿名用户
2015-07-29
展开全部
在你的class中加入:
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, uint hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true, CharSet = CharSet.Auto)]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "SetForegroundWindow", SetLastError = true)]
private static extern void SetForegroundWindow(IntPtr hwnd);
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
在启动代码中加入
IntPtr mainHandle = FindWindow("a.exe main window class name", "a.exe main window name");
if (mainHandle != null)
{
SetForegroundWindow(mainHandle);
SendMessage(mainHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); // 最大化
}

可以用Visual studio提供的spy,找到你a.exe程序的主窗口的类名称和窗口名称。
追问
下面那个spy也很重要呀  我是菜鸟 能给个现成的代码吗
分还是给你 谢谢热心回答
追答
spy是visual studio提供的工具,你可以在它的安装目录中找到的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式