Tag: 控制台应用程序

Windows窗体应用程序C#中的控制台应用程序

我有2个申请。 其中一个是控制台应用程序,另一个是普通的表单应用程序 – 都是用C#编写的。 我想从Windows窗体应用程序打开(从视图中隐藏)控制台应用程序,并能够将命令行发送到控制台应用程序。 我怎样才能做到这一点?

即使在ProcessWindowStyle.Hidden之后,控制台窗口仍然会弹出;

我必须从我的Windows应用程序运行控制台应用程序。 我想运行的控制台应用程序是我的应用程序中的嵌入式资源,我这样称呼它: // Run the updater and grab its output Process Updater = new Process(); Updater.StartInfo.FileName = “C:\\tmp\\tmp.exe”; Updater.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; Updater.StartInfo.UseShellExecute = false; Updater.StartInfo.RedirectStandardOutput = true; Updater.Start(); string UpdaterOutput = Updater.StandardOutput.ReadToEnd(); Updater.WaitForExit(); 它提取精细,它运行良好,它也完全抓住它的输出…但我仍然可以看到控制台窗口在运行时快速弹出。 我知道控制台弹出来自此应用程序,因为控制台标题是C:\tmp\tmp.exe 。 是否有任何完全失败的方法来隐藏控制台应用程序? 我以为使用ProcessWindowStyle.Hidden会这样做,但显然不是。 谢谢。

如何确定控制台应用程序的启动方式?

如何通过双击EXE(或快捷方式)来判断用户是否已启动我的控制台应用程序,或者是否已打开命令行窗口并在该会话中执行我的控制台应用程序?

在控制台应用程序中的主线程上调用委托

在Windows应用程序中,当使用多个线程时,我知道有必要调用主线程来更新GUI组件。 如何在控制台应用程序中完成? 例如,我有两个线程,一个主线程和一个辅助线程。 辅助线程始终在监听全局热键; 当它被按下时,辅助线程执行一个事件,该事件触及win32 api方法AnimateWindow。 我收到错误,因为只允许主线程执行所述函数。 当“调用”不可用时,如何有效地告诉主线程执行该方法? 更新:如果有帮助,这是代码。 要查看HotKeyManager内容(其他线程正在发挥作用),请查看此问题的答案 class Hud { bool isHidden = false; int keyId; private static IntPtr windowHandle; public void Init(string[] args) { windowHandle = Process.GetCurrentProcess().MainWindowHandle; SetupHotkey(); InitPowershell(args); Cleanup(); } private void Cleanup() { HotKeyManager.UnregisterHotKey(keyId); } private void SetupHotkey() { keyId = HotKeyManager.RegisterHotKey(Keys.Oemtilde, KeyModifiers.Control); HotKeyManager.HotKeyPressed += new EventHandler(HotKeyManager_HotKeyPressed); } void […]

用C#中的每个新线程打开一个新的控制台?

我希望每当我创建一个新线程时都会打开一个新的控制台,以便组织输出。 我的应用程序完全基于控制台。 如果是这样的话会有可能吗? 问候!

如何在.Net控制台应用程序中设置默认输入值?

如何在.net控制台应用程序中设置默认输入值? 这是一些伪装代码: Console.Write(“Enter weekly cost: “); string input = Console.ReadLine(“135”); // 135 is the default. The user can change or press enter to accept decimal weeklyCost = decimal.Parse(input); 当然,我不希望它如此简单。 我打算不得不做一些低级的,无管理的东西; 我只是不知道如何。 编辑 我知道我可以用默认值替换没有输入。 这不是我要问的问题。 我试图了解实现我所描述的行为所涉及的内容:为用户提供可编辑的默认值。 我也不担心输入validation; 我的问题与此无关。

控制台应用程序在鼠标单击时冻结

我有一个非常简单的C#控制台应用程序,它显示一些文本和循环等待输入,直到按下转义键或提供超时时间。 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; namespace SampleApp { public static class Program { public static void Main (string [] args) { var key = new ConsoleKeyInfo(); var watch = Stopwatch.StartNew(); var timeout = TimeSpan.FromSeconds(5); Console.WriteLine(“Press escape to return to the previous screen…”); Console.WriteLine(); do { Console.WriteLine(“This screen […]

C#Console App +事件处理

大家好。 我正在尝试查看在控制台应用程序中处理事件。 我宁愿不使用无声WinForms(虽然我明白这是一种方式)来做到这一点。 我读过一个类似的问题和它的回答。 请参阅下面的响应文本( 链接 ): STA线程的基本要求是它需要运行消息泵。 在Windows窗体中,您可以使用Application.Run。 或者您可以使用user32!GetMessage和DispatchMessage手动编写消息泵。 但是在WinForms或WPF中使用它可能更容易。 使用“user32 – > GetMessage”和“user32 – > DispatchMessage”的程序的基本结构是什么?

C#计数元音

我正在学习编程C#,我正在尝试计算元音。 我正在让程序遍历句子,但不是返回元音计数,而是返回字符串的长度。 任何帮助将不胜感激。 static void Main() { int total = 0; Console.WriteLine(“Enter a Sentence”); string sentence = Console.ReadLine().ToLower(); for (int i = 0; i < sentence.Length; i++) { if (sentence.Contains("a") || sentence.Contains("e") || sentence.Contains("i") || sentence.Contains("o") || sentence.Contains("u")) { total++; } } Console.WriteLine("Your total number of vowels is: {0}", total); Console.ReadLine(); }

在C#控制台应用程序中编辑文本?

有没有办法在C#控制台应用程序中编辑文本? 换句话说,是否可以在命令行上放置预定义的文本,以便用户可以修改文本然后将其重新提交给应用程序?