将控制台应用程序窗口置于前面的代码说明

时间:2013-04-09 14:07:30

标签: c# console

我需要将控制台从C#表单/控制台应用程序带到前端。我得到了以下代码,它将控制台窗口置于前面:bring a console window to front in c#

但为什么此代码示例也会打印为真,如何禁用它?

public static void ToFront()
{
    string originalTitle = Console.Title;
    string uniqueTitle = Guid.NewGuid().ToString();
    Console.Title = uniqueTitle;
    Thread.Sleep(50);
    IntPtr handle = FindWindowByCaption(IntPtr.Zero, uniqueTitle);
    Console.Title = originalTitle;
    Console.WriteLine(SetForegroundWindow(handle));
}

5 个答案:

答案 0 :(得分:4)

更改您的最后一行
Console.WriteLine(SetForegroundWindow(handle));

SetForegroundWindow(handle);

您执行该功能并打印结果值时所拥有的。

答案 1 :(得分:1)

这条线是罪魁祸首:

Console.WriteLine(SetForegroundWindow(handle));

SetForeGroundWindow返回一个bool,由WriteLine自动强制转换为字符串并打印出来。

将其替换为:

SetForegroundWindow(handle);

答案 2 :(得分:0)

您正在打印SetForgroundWindow的返回值,该返回值成功时返回true。只需将该类删除到console.writeline

即可
Console.Title = originalTitle;
SetForegroundWindow(handle);

答案 3 :(得分:0)

你可以使用;

SetForegroundWindow(handle);

Console.WriteLine(SetForegroundWindow(handle));

答案 4 :(得分:0)

鉴于标题在桌面上是唯一的,添加对Microsoft.VisualBasic的引用,然后:

using Microsoft.VisualBasic;
....
Interaction.AppActivate(Console.Title);

编辑:对不起我没有完全阅读这个问题,但如果VB导入没有冒犯你,这是一个将应用程序带到前台的简单方法。