开启一个新进程打开exe窗口,让exe窗口位于当前主窗口底层打开~

ylly2508 2010-08-06 01:34:44
用一个进程打开一个.exe文件的窗口,让这个窗口在当前主窗口的底层打开~~~

以下是部分代码~~


[DllImport( "user32.dll" )]
private static extern IntPtr FindWindow( string a , string b );
[DllImport( "user32.dll" )]
public static extern bool SetWindowPos(
IntPtr hWnd , // 窗口句柄
IntPtr hWndInsertAfter , // 排列顺序的句柄
int X , // 水平坐标
int Y , // 垂直坐标
int cx , // 宽
int cy , // 高
uint uFlags // 窗口定位标示
);


private void button_Click( object sender , System.Windows.RoutedEventArgs e )
{
//设置主窗体位于顶层
this.Topmost = true;
IntPtr hwnd = FindWindow( null , "Window1" );
bool bl;
if ( hwnd != IntPtr.Zero )
{
bl = SetWindowPos( hwnd , HWND_TOPMOST , 0 , 0 , (int)SystemParameters.PrimaryScreenWidth , (int)SystemParameters.PrimaryScreenHeight , SWP_NOMOVE | SWP_SHOWWINDOW );
}


//开启进程打开exe窗体
System.Diagnostics.Process appProc = new System.Diagnostics.Process( );
appProc.StartInfo.FileName = appPath;
appProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
appProc.StartInfo.CreateNoWindow = false;

appProc.StartInfo.UseShellExecute=true;
appProc.Start( );

hwndHost = FindWindow( null,"Window2" );

SetWindowPos( hwndHost , (IntPtr)( -2 ) , 0 , 0 , 0 , 0 , 64 );
}


请各位高手看看代码有问题么??
为什么设置主窗体位于顶层不好用呢~~每次进程start后,.exe窗体总要弹出来一下在隐藏,这是为什么呢~~~
最好给出具体的解决方法~谢谢了~!
...全文
287 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylly2508 2010-08-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 laokaizzz 的回复:]
System.Windows.RoutedEventArgs 怎么引用啊,我这里怎么引用不到啊
提示错误
命名空间“System.Windows”中不存在类型或命名空间名称“RoutedEventArgs”(是缺少程序集引用吗?)
[/Quote]

你用的是winform窗体吧~~~我用的是window窗口,WPF的~
laokaizzz 2010-08-06
  • 打赏
  • 举报
回复
System.Windows.RoutedEventArgs 怎么引用啊,我这里怎么引用不到啊
提示错误
命名空间“System.Windows”中不存在类型或命名空间名称“RoutedEventArgs”(是缺少程序集引用吗?)
ylly2508 2010-08-06
  • 打赏
  • 举报
回复
启动的时候~~~启动进程的时候,可以设置.exe窗体最小化么??
请问怎样设置啊??
  • 打赏
  • 举报
回复
启动的时候先最小化

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧