Tag: 控制台

WinForm / Console混合应用程序中的行为

我有一个WinForm项目,如果将某些参数传递给它,我希望它可用作控制台应用程序。 使用我从这里读到的一些技巧,我使用以下代码来完成这项工作。 [System.Runtime.InteropServices.DllImport(“kernel32.dll”)] private static extern bool AllocConsole(); [System.Runtime.InteropServices.DllImport(“kernel32.dll”)] private static extern bool AttachConsole(int pid); … if (!AttachConsole(-1)) { AllocConsole(); } 这有效,但有一个恼人的副作用 – 所有输出似乎都是从后台线程生成的。 当我从命令提示符运行程序时,输出显示输出前的下一个提示。 我将项目属性的输出类型设置为控制台应用程序,它解决了这个问题,但现在总是显示一个控制台窗口 – 即使它在’WinForm模式’下运行。 有没有办法充分利用控制台行为的两个世界,程序是当前进程,当程序显示WinForm时,控制台窗口不显示? 更新:我很抱歉没有澄清这一点。 我在Program.cs中切换控制台和WinForm模式,如下所示: // nowin is a bool that is set based on a parameter if (nowin) { if (!AttachConsole(-1)) { AllocConsole(); } //… Console mode code […]

如何validation用户输入是否为整数?

它告诉我它无法将int转换为bool。 试过TryParse,但由于某种原因,参数列表无效。 码: private void SetNumber(string n) { // if user input is a number then if (int.Parse(n)) { // if user input is negative if (h < 0) { // assign absolute version of user input number = Math.Abs(n); } else { // else assign user input number = n; } } else { […]

正确的方法来连接和查询SQL Server Express数据库

我需要一个示例C#(控制台应用程序)代码连接到SQL Server Express数据库并将一些变量插入表“laptops” SQL Server Express是@ localhost 用户名是数据库 和密码是testdatabase 这样做的正确方法是什么?

可以在c#.net中获取/设置控制台字体大小?

我看过有关更改控制台真实类型字体,控制台颜色(rgb)的post,但没有设置或获取控制台字体大小。 编辑:reason = grid输出到控制台,grid有很多列,更适合更小的字体,想知道是否可以在运行时更改,而不是允许默认或配置字体进行优先级/覆盖inheritance。

C#.NET控制台应用程序使用的控制台字体和布局

我如何设置Windows(或Visual Studio,或我的应用程序),以便当我通过从Visual Studio 2010中按F5运行控制台应用程序时,我可以使用我选择的字体而不是80×25标准CMD / DOS获得120×50布局窗口? (甚至更好 – 有谁知道如何让VS在Console2或bash而不是cmd.exe中运行控制台应用程序?)

如何从C#中的控制台窗口回放焦点?

我有一个C#控制台应用程序(A)打开黑色Windows控制台。 有时在启动时它会从另一个需要关注的程序(B)中窃取焦点。 问题:如何从A.exe到B.exe重点关注? A -> Focus -> B 细节: 程序B不是我的,我无能为力。 它有一个GUI,多个窗口,其中一个需要焦点(它可能是一个模态对话窗口)。 程序A不需要任何关注,也不会以任何方式与程序B交互。 程序A通过启动快捷方式启动,基本上在后台运行(它已发布但仍在开发中,这就是控制台窗口的原因) 我有几分钟/几分钟的时间来检查并重点关注。

c#在不停止应用的情况下读取用户输入

我知道我可以使用ReadKey,但它会冻结应用程序,直到用户按下一个键。 是否有可能(在控制台应用程序中)运行一些循环仍然能够做出反应? 我只能想到事件,但不知道如何在控制台中使用它们。 我的想法是循环将在每次迭代期间检查输入。

如何将进程输出重定向到System.String

我从.NET应用程序调用Java进程,我需要将控制台输出重定向到System.String以便稍后进行解析。 请指教。 我会很感激短代码示例。 public bool RunJava(string fileName) { try { ProcessStartInfo psi = new ProcessStartInfo(); psi.CreateNoWindow = true; psi.UseShellExecute = false; psi.EnvironmentVariables.Add(“VARIABLE1”, “1”); psi.FileName = “JAVA.exe”; psi.Arguments = “-Xmx256m jar.name”; Process.Start(psi); return true; } catch (Exception ex) { return false; } }

在C#中更改控制台窗口中的字体

我有一个用C#编写的程序,它使用Raster字体中不可用的字符。 所以我想将字体改为Lucida Console。 若要以编程方式更改Console字体,我使用此代码的SetCurrentConsoleFontEx()(源: MSDN控制台类 )但我在调用SetCurrentConsoleFontEx()时遇到System.AccessViolationException。 谁能帮助我? 谢谢你的帮助。 using System; using System.Linq; using System.Runtime.InteropServices; namespace ConsoleExtender { public static class ConsoleHelper { [StructLayout(LayoutKind.Sequential)] internal unsafe struct CONSOLE_FONT_INFO_EX { internal uint cbSize; internal uint nFont; internal COORD dwFontSize; internal int FontFamily; internal int FontWeight; internal fixed char FaceName[LF_FACESIZE]; } [StructLayout(LayoutKind.Sequential)] internal struct COORD { internal short […]

在.NET控制台应用程序中,是否可以始终在控制台中显示一行文本?

我想在控制台应用程序中添加一个简单的带宽监视器,我想知道是否可以随时在控制台窗口中保持一行。 我可以手动设置一些东西,将新的控制台输出传递给一个方法,该方法可以获取控制台的内容,清除控制台,在第一行添加带宽数据,然后将每行先前信息重写回控制台等。但是,这似乎是一种真正的hacky方式,并且我将被限制在控制台窗口中一次可见的行数(不滚动)。 任何的想法? 这有什么内置function吗? 例: STATS: Downloaded: 2599b, Uploaded: 754b <- this always stays at the top constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text constantly changing text