3
我寫了一個C#工具,作爲標準控制檯應用程序運行。在程序結束時,我使用了Console.Read()
來防止窗口關閉。這對所有我的同事個人電腦除了一個以外都可以。他從未看到我的申請。它完成了所有的工作,但之後關閉。所有PC運行WinXP。你有什麼主意嗎?控制檯窗口關閉,儘管使用Console.Read()
我實現了一個try-catch-finally,其中最後只包含Console.Read()
。
編輯:我添加了一些代碼
Console.SetWindowSize(125, 40);
CopyToolBase ctb = null;
try
{
DateTime startTime = DateTime.Now;
TimeSpan duration;
ctb = CopyToolBase.GetInstance(Defines.configPath);
if (null == ctb)
{
throw new KopiertoolException();
}
if (null == ctb.GetNewestVersion())
{
throw new KopiertoolException();
}
if (!ctb.CheckCopy())
{
throw new KopiertoolException();
}
if (!ctb.CopyAndUnzip())
{
throw new KopiertoolException();
}
duration = DateTime.Now.Subtract(startTime);
ctb.PrintSuccess("xxxxxxxx");
ctb.PrintInfo("Gesamtdauer: " + ((duration.Hours == 0) ? "" : string.Format("{0:00} Std ", duration.Hours)) + string.Format("{0:00} Min {1:00} Sek", duration.Minutes, duration.Seconds));
startTime = DateTime.Now;
if (!ctb.StartTask())
{
throw new KopiertoolException();
}
duration = DateTime.Now.Subtract(startTime);
if (duration.Minutes > 1)
{
ctb.PrintInfo("Dauer: " + ((duration.Hours == 0) ? "" : string.Format("{0:00} Std ", duration.Hours)) + string.Format("{0:00} Min {1:00} Sek", duration.Minutes, duration.Seconds));
}
}
catch (KopiertoolException)
{
ctb.WriteToLog();
}
catch (Exception ex)
{
if (ctb == null)
{
Console.WriteLine("xxxxxxxxx");
Console.WriteLine(ex.ToString());
}
else
{
ctb.PrintError("xxxxxxxxx");
ctb.PrintError(ex.ToString());
ctb.WriteToLog();
}
}
finally
{
Console.Read();
}
一些代碼將是有益的。 –
我會嘗試記錄上次Console.Read(..)上收到的密鑰,以查看在該PC上按下的按鍵,如果這是可能的話。 – Tigran
也許有例外嗎? – Maarten