C# 用Process打开一个第三方exe文件让其始终显示在最前端

l245382052 2016-08-29 10:42:58
如题:C# 用Process打开一个第三方exe文件让其始终显示在最前端,请问应该怎么做才能达到预期的效果?谢谢
...全文
2806 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
l245382052 2016-08-29
  • 打赏
  • 举报
回复
引用 5 楼 yuankaiwsl 的回复:
1、是不是程序打开比较慢,还没启动完成就SetForegroundWindow了,试试这样[code=csharp]Process p = new Process(); p.StartInfo.FileName = "notepad"; if(p.Start()) SetForegroundWindow(p.MainWindowHandle); [/code/2、还是不能被置前,试试手动启动后找到进程SetForegroundWindow看看能不能行
按照这样写果然前置了,问题解决。谢谢了
巴士上的邂逅 2016-08-29
  • 打赏
  • 举报
回复
1、是不是程序打开比较慢,还没启动完成就SetForegroundWindow了,试试这样[code=csharp]Process p = new Process(); p.StartInfo.FileName = "notepad"; if(p.Start()) SetForegroundWindow(p.MainWindowHandle); [/code/2、还是不能被置前,试试手动启动后找到进程SetForegroundWindow看看能不能行
l245382052 2016-08-29
  • 打赏
  • 举报
回复
引用 3 楼 yuankaiwsl 的回复:
你是用的Handle吗?要用MainWindowHandle
var p = Process.Start("notepad");
SetForegroundWindow(p.MainWindowHandle);

string strpath = Application.StartupPath + "\\SoftBoard.exe";
 private void textBox4_Click(object sender, EventArgs e)
 {
        System.Diagnostics.Process p = System.Diagnostics.Process.Start(strpath);
        bool f = SetForegroundWindow(p.MainWindowHandle);
 }
巴士上的邂逅 2016-08-29
  • 打赏
  • 举报
回复
你是用的Handle吗?要用MainWindowHandle
var p = Process.Start("notepad");
SetForegroundWindow(p.MainWindowHandle);
l245382052 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 yuankaiwsl 的回复:
用它
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
这个我试了 返回值为true 但是打开的exe 还是没有最前端显示,始终不前端显示
巴士上的邂逅 2016-08-29
  • 打赏
  • 举报
回复
用它
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

111,128

社区成员

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

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

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