将控制台应用程序窗口带到前端代码解释

本文关键字:前端 代码 解释 控制台 应用程序 窗口 | 更新日期: 2023-09-27 18:08:20

我需要将控制台从c#表单/控制台应用程序带到前面。我得到了下面的代码,这将把控制台窗口前面从:把控制台窗口前面在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));
}

将控制台应用程序窗口带到前端代码解释

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

SetForegroundWindow(handle);

您所拥有的是执行函数并打印结果值

这一行就是罪魁祸首:

Console.WriteLine(SetForegroundWindow(handle));

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

替换为:

SetForegroundWindow(handle);

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

Console.Title = originalTitle;
SetForegroundWindow(handle);

你可以使用;

SetForegroundWindow(handle);

Console.WriteLine(SetForegroundWindow(handle));

考虑到标题在桌面中是唯一的,请添加对Microsoft的引用。VisualBasic,然后:

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

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