Tag: 控制台

使Console.WriteLine()包装单词而不是字母

使用Console.WriteLine() ,它输出: 我想让它看起来像这样,而不是在需要的地方手动放入\n : 这可能吗? 如果是这样,怎么样?

在WPF或Console C#app中接收WM_COPYDATA结构

我正在编写一个C#应用程序,需要与用本机C编写的另一个应用程序进行通信。到目前为止,我已经想出了如何使用User32.dll SendMessage将消息从我的C#应用​​程序发送到C应用程序。 但是,我无法弄清楚如何让C#应用程序从C应用程序接收消息。 我已经看到了覆盖WndProc方法的WinForms示例,但是在WPF或Console应用程序中没有要覆盖的WndProc方法。 当然,至少可以在控制台应用程序中执行此操作。 对?

用.NET 4.5编写的Windows服务中的Console.Out和Console.Error争用条件错误

我已经在生产过程中遇到了一个奇怪的问题,Windows服务随机挂起,并希望对根本原因分析提供任何帮助。 该服务是用C#编写的,并部署到使用.NET 4.5的机器上(虽然我也能用.NET 4.5.1重现它)。 报告的错误是: Probable I/O race condition detected while copying memory. The I/O package is not thread safe by default. In multithreaded applications, a stream must be accessed in a thread-safe way, such as a thread-safe wrapper returned by TextReader’s or TextWriter’s Synchronized methods. This also applies to classes like StreamWriter and StreamReader. […]

检查输出是否重定向

我有一个用C#编写的控制台应用程序,它处理一些数据然后打印结果。 在结果可用之前,会有一些动画(/ – \ |)和进度百分比(xx%)不断更新。 显然,如果用户重定向我的应用程序的输出,它将被打印到输出被重定向到的文本文件中。 如果可能的话我想避免这种情况。 那么有没有办法检测我的应用程序的输出是否被重定向? 我正在考虑在使用指定参数运行时仅显示进度指示器,但我希望有人会对我有一个好的答案。

如何知道Process崩溃了

在我的控制台应用程序中,我有代码看起来像 Process DKU = new Process(); DKU.StartInfo.FileName = “MSSQLExecutor.exe”; DKU.Start(); DKU.WaitForExit(); Console.WriteLine(“lets move on “); 这工作正常,它等待MSSQLExecutor.exe完成其工作,然后应用程序继续。 我的问题是,有时MSSQLExecutor.exe崩溃,Windows默认显示一个用于结束程序的对话框。 此时,我的应用程序将永远等待用户单击“关闭”按钮。 我想避免这种情况,因为我的应用程序将在没有用户交互的情况下作为服务运行。

在C#/ Silverlight中,System.out.println()的等价物是什么?

我正在用C#和Silverlight开发一些项目。 我试图打印代码行以便调试,但Console.Write()似乎不起作用。 我创建了一个Silverlight应用程序,而不是Console.Write()确实有效的控制台应用程序。 如何在控制台或Silverlight应用程序项目的输出窗口中打印?

在Azure或亚马逊上托管控制台应用程序,是否可能?

我想知道是否可以在Windows Azure上将控制台应用程序写入端口 。 控制台应用程序没有接口,它只是在不通知用户正在做什么的情况下完成其工作。 在这种情况下,它将是一个套接字应用程序。 我不希望它成为一个网站。 它不会是项目的任何补充。 编辑:谢谢大家这么快回复我。 现在我得到了我一直在寻找的答案。 现在我的问题是: 它会在亚马逊上被称为什么? 它是Azure上的工作者角色…现在我知道感谢大家

在当前控制台中运行进程

我正在为Windows编写一个基本的shell,我想知道是否有任何方法可以运行子Process process ( Process process ),以便它使用当前的控制台窗口。 我的意思是我不想重定向输入/输出; 我希望进程从当前控制台获取输入并将输出直接打印到同一控制台窗口。 原因是我希望允许此子进程为输出设置控制台颜色,如果我重定向进程的标准输出,则不会发生这种情况。 另外,我目前使用的是代码 while (!process.HasExited) process.StandardInput.WriteLine(Console.ReadLine()); 将标准输入重定向到流程。 但是,如果进程在输入后立即退出(例如,我键入“exit”+ ENTER,并且进程退出),则此循环将再次运行,因此控制台正在等待来自用户的输入,该输入将永远不会被使用通过这个过程(即将退出)。 所以,问题很简单, 如何在当前控制台中运行一个进程,以便它可以设置控制台颜色并直接从控制台获取输入 ? 编辑:以下是我的代码中与此问题相关的方法: static int runExe(string exePath, params string[] args) { ProcessStartInfo startInfo = new ProcessStartInfo(exePath, args) { ErrorDialog = false, UseShellExecute = false, CreateNoWindow = true, RedirectStandardInput = true, RedirectStandardOutput = true, RedirectStandardError = true, RedirectStandardInput = […]

C#中控制台的最大列数

在C#控制台应用程序中,我发现您可以使用Console.SetWindowSize(160, 80); 设置控制台窗口的大小。 这很好,除了最大行数和列数完全取决于人的计算机的显示分辨率。 当您调用Console.SetWindowSize()并提供过高的值时,应用程序会抛出错误并告诉您最大列数。 此最大数量因屏幕分辨率而异。 如果SetWindowSize()使用像素,那么获得最大值将很容易。 Screen.PrimaryScreen.Bounds.Width 但是,它不使用像素。 它使用列。 有没有办法确定控制台列的最大值?

使用AttachConsole,当我附加的进程正在运行并且喷出时,我仍然可以键入并运行其他命令

使用AttachConsole,当我附加的进程正在运行并且喷出时,我仍然可以键入并运行其他命令。 我的程序以表单或命令行运行。 如果以参数启动,它将在命令窗口中运行。 我使用AttachConsole(-1)将我的进程附加到我调用的命令窗口。 它工作得很好,我从我的过程中得到了所有的输出。 但是,控制台仍然处理来自键盘的用户输入,无论我输入什么,例如,如果我键入’cls’并按Enter键,输出将被擦除。 如何在进程运行时阻止用户对控制台的输入?