隐藏控制台窗口,而不是任务栏按钮

时间:2014-04-17 12:09:48

标签: c# winapi console taskbar

我需要隐藏控制台窗口,我很快通过P / Invoking ShowWindow解决了这个问题。但是,该调用会隐藏控制台窗口以及控制台窗口的任务栏按钮。我需要任务栏按钮保持可见。但是,我不是在寻找一种最小化控制台窗口的方法。单击任务栏按钮显示不执行任何操作。我尝试使用SetWinEventHook并在每次激活时隐藏窗口,但无济于事,因为调用此函数的窗口必须运行消息循环才能接收事件(并且我的控制台窗口没有,无论我是否设置OutOfContext或InContext标志)。

有没有办法可以让我的控制台应用程序运行,在任务栏中显示自己,然后隐藏自己(或者从不首先显示自己),只是继续运行没有窗口,但任务栏按钮可见?

1 个答案:

答案 0 :(得分:1)

在任务栏上获取按钮的常规方法是创建一个可见的无主顶级窗口。这对你没用。一种可能的替代方法是使用ITaskbarList::AddTab添加按钮。我不知道这是否会对隐形窗口做任何事情。无论哪种方式,您都需要为您的窗口运行消息循环。即使你能做到这一点,净结果也不会让用户感觉非常好。