有谁知道如何在控制台应用程序中使用RegisterHotKey / UnregisterHotKey API调用? 我假设设置/删除热键是一样的,但是当按键被按下时,我怎样才能接通电话? 我看到的每个示例都是针对Winforms,并使用protected override void WndProc(ref Message m){…} ,这对我来说是不可用的。 更新:我有什么是下面,但事件是从来没有打。 我以为这可能是因为当你加载ConsoleShell它阻止进一步的执行,但即使我把SetupHotkey到另一个线程没有任何反应。 有什么想法吗? class Program { static void Main(string[] args) { new Hud().Init(args); } } class Hud { int keyHookId; public void Init(string[] args) { SetupHotkey(); InitPowershell(args); Cleanup(); } private void Cleanup() { HotKeyManager.UnregisterHotKey(keyHookId); } private void SetupHotkey() { keyHookId = HotKeyManager.RegisterHotKey(Keys.Oemtilde, KeyModifiers.Control); […]
在.NET中,是否有方法(如事件)来检测控制台应用程序何时退出? 我需要清理一些线程和COM对象。 我正在从控制台应用程序运行一个消息循环,没有窗体。 我正在使用的DCOM组件似乎要求应用程序泵送消息。 我已经尝试添加一个处理程序Process.GetCurrentProcess.Exited和Process.GetCurrentProcess.Disposed。 我也尝试添加一个处理程序到Application.ApplicationExit和Application.ThreadExit事件,但他们不是射击。 也许这是因为我没有使用表单。
如何从控制台应用程序中创build,执行和控制一个winform?
卡住了一个非常基本的例子: using System; using System.Windows.Forms; class test { static void Main() { Console.WriteLine("test"); MessageBox.Show("test"); } } 如果我使用默认选项(在命令行使用csc)编译这个,如预期的那样,它将编译成一个控制台应用程序。 另外,因为我导入了System.Windows.Forms ,它也会显示一个消息框。 现在,如果使用选项/target:winexe ,我认为这与从项目选项中selectWindows Application相同,如预期的那样,我将仅看到消息框并没有控制台输出。 (实际上,从命令行启动的那一刻,我可以在应用程序完成之前发出下一个命令)。 所以,我的问题是 – 我知道你可以有一个控制台应用程序的“窗口”/窗体输出,但无论如何,从Windows应用程序显示控制台?
我已经决定学习一些基本的C#(虽然我有编程经验),但是我正在遵循MSDN中的指南,但是这里的问题是他们的Hello World程序出现了,那么它会马上closures。 这是为什么? using System; public class Hello1 { public static int Main() { Console.WriteLine("Hello, World!"); return 0; } }
我正在构build一个ncurses库的轻量级版本。 到目前为止,在兼容VT100的terminal上运行得非常好,但win32控制台无法识别\033代码作为转义序列的开始: # include <stdio.h> # include "term.h" int main(void) { puts(BOLD COLOR(FG, RED) "Bold text" NOT_BOLD " is cool!" CLEAR); return 0; } 在C代码级上需要做些什么,以便加载ANSI.SYS驱动程序并识别ANSI / VT100转义序列?
我search了一些关于如何隐藏自己的控制台窗口的信息。 令人惊讶的是,我能find的唯一解决scheme是hacky解决scheme,它涉及FindWindow() 通过标题find控制台窗口。 我深入了解Windows API,发现有一个更好更简单的方法,所以我想把它发布到这里供其他人查找。 你如何隐藏(和显示)与我自己的C#控制台应用程序相关的控制台窗口?
我是新来的asynchronous编程与async修改器。 我想弄清楚如何确保我的控制台应用程序的Main方法实际上是asynchronous运行的。 class Program { static void Main(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = bs.GetList(); } } public class Bootstrapper { public async Task<List<TvChannel>> GetList() { GetPrograms pro = new GetPrograms(); return await pro.DownloadTvChannels(); } } 我知道这不是从“顶部”asynchronous运行。 由于无法在Main方法中指定async修饰符,因此如何在mainasynchronous运行代码?
如何在控制台应用程序中find应用程序的path? 在Windows窗体中 ,我可以使用Application.StartupPath来查找当前path,但是在控制台应用程序中似乎不可用。
问题:我想在控制台应用程序中为未处理的异常定义全局异常处理程序。 在asp.net中,可以在global.asax中定义一个,而在windows应用程序/服务中,可以定义如下 AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyExceptionHandler); 但是我怎样才能定义一个控制台应用程序的全局异常处理程序? currentDomain似乎不工作(.NET 2.0)? 编辑: 啊,愚蠢的错误。 在VB.NET中,需要在currentDomain前添加“AddHandler”关键字,否则在IntelliSense中不会看到UnhandledException事件。 这是因为VB.NET和C#编译器不同地处理事件处理。