2012-11-22 21 views
5

ile Olası Çoğalt yönlendirmek:
How can I determine whether Console.Out has been redirected to a file?
How to detect if Console.In (stdin) has been redirected?Konsol Console.CursorLeft

Sistemimiz şu anda konsola üzerine basıldı son şey üzerinde yazmak için CursorLeft fonksiyonunu kullanıyor pencere:

Console.CursorLeft = 0; 

Bu, gereken işlevselliktir, bu yüzden her seferinde yeni bir satır yazdırmak için değiştiremiyorum. Konsolu bir metin dosyasına yeniden yönlendirirken, IOException ortaya çıkar. Günlük dosyalarını bu çıktıları görüntülemeyi atlamak veya herkesi dışarı çıkarmak için zorlamak için nasıl alabilirim?

cevap

0

Konsolun bir dosyadan farklı olduğunu bana göre oldukça açık. Örneğin, çıktıları bir dosyaya yönlendirdiğinizde kaybedilecek konsoldaki renkleri kullanabilirsiniz. Bu nedenle, yeniden yönlendirme sonrasında tüm konsol işlevselliğinin korunabileceği garanti edilmez. Bu gereksinimi sorgulamanızı öneririm çünkü uygun görünmüyor. (Sayfanın alt cinsinden) nasıl konsol eserler hakkında bazı bilgiler MSDN'den makale İşte "The handle is invalid" when running .net console via java

edilir: http://msdn.microsoft.com/en-us/library/system.console.aspx

neyse burada

altında aynı Win32API dayalı benzer bir sorundur

Düşünmeniz gereken bir diğer konu da, bu sorunu çözemeyebileceğiniz halde, uygulamanızı kesinlikle yeniden yapılandırabilmenizdir, böylece konsol ile doğrudan etkileşim kurmayı istediğiniz tüm değişiklikleri toplayan bazı arabellek sınıfıyla özetleyebilirsiniz. sanal bir tamponda tek bir satıra (veya birkaç satıra) ve daha sonra yalnızca Console.WriteLine'a yalnızca bir çağrı yapın. Tüm değişikliklerin yapıldığı ve bu hattın artık değiştirilmeyeceğinden emin olun.