2013-04-09 32 views
2

我需要將控制檯從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)); 
      } 

感謝您的幫助!

+1

**最後一行**負責打印「true」,您應該從'Console.WriteLine(SetForegroundWindow(handle))'將其更改爲'SetForegroundWindow(handle)'。 – 2013-04-09 14:12:04

回答

3

Console.WriteLine(SetForegroundWindow(handle)); 

改變你的最後一行

SetForegroundWindow(handle); 

你已經被執行功能和打印產生的價值是什麼。

+0

謝謝!我錯過了那個;) – jipje44 2013-04-09 14:13:45

0

您正在打印出SetForgroundWindow的返回,它在成功時返回true。只是刪除類console.writeline

Console.Title = originalTitle; 
SetForegroundWindow(handle); 
1

這條線是罪魁禍首:

Console.WriteLine(SetForegroundWindow(handle)); 

SetForeGroundWindow返回一個布爾值,它是由的WriteLine自動轉換爲字符串,並打印出來。

將其替換爲:

SetForegroundWindow(handle); 
0

可以使用;

SetForegroundWindow(handle); 

Console.WriteLine(SetForegroundWindow(handle)); 
0

鑑於稱號,是臺式機中是唯一的,添加引用Microsoft.VisualBasic程序,然後:

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

編輯:對不起,我完全沒閱讀這個問題,但如果VB導入不會冒犯你,這是一個簡單的將應用程序置於前臺的方法。

相關問題