我需要将控制台从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));
}
答案 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导入没有冒犯你,这是一个将应用程序带到前台的简单方法。