C#如何防止控制台应用程序被构建为Windows应用程序后退出?

5
我有一个控制台应用程序, 它是构建为Windows应用程序,以作为后台进程运行(我称之为App 1)。
当我运行其他应用程序时,我会向App 1发送消息,然后它会处理该消息。
我想要避免App 1自动退出,直到我按下热键。
你能帮助我如何避免App 1自动退出吗?非常感谢!

创建一些静态变量并在退出之前进行检查。 - Wesley Schleumer de Góes
将两个答案合并(因为Console.ReadLine()不适用)。 :) - ericosg
3个回答

3
你需要的是如何注册热键。可以尝试以下方法:
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]

public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, int vk);

来源: http://msdn.microsoft.com/en-us/library/ms646309(v=vs.85).aspx

这篇文章讲述了如何使用Windows API函数来创建、显示和隐藏窗口。它包括了一些基本的概念,例如消息循环和回调函数,以及一些实用的示例代码。如果你正在学习Windows编程或想要改进你的技能,这篇文章将会对你有所帮助。

2
不,我想问如何防止App 1自动退出? - Thanh Nguyen
也许编写一个Windows/WCF服务?无头控制台应用程序的方法是执行完毕后退出。 - ericosg


0
    static void Main(string[] args)
    {
        // do something here...

        string answer = Console.ReadLine();
        while (answer != "Exit")
        {
            answer = Console.ReadLine();
        }
    }

在无头控制台应用程序中,Console.ReadLine不可用。 - ericosg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接