c# – 如何使程序不会显示在Alt-Tab或任务栏中

c# – 如何使程序不会显示在Alt-Tab或任务栏中,第1张

概述我有一个程序需要坐在后台,当一个用户连接到一个RDP会话时,它会做一些环境设置,然后启动一个程序.当程序关闭时,会做一些内务处理并注销会话. 目前我正在做的是我的终端服务器启动这个应用程序.这是构建为Windows窗体应用程序,以防止控制台窗口显示: public static void Main(){ //(Snip...) Do some setup work Proces 我有一个程序需要坐在后台,当一个用户连接到一个RDP会话时,它会做一些环境设置,然后启动一个程序.当程序关闭时,会做一些内务处理并注销会话.

目前我正在做的是我的终端服务器启动这个应用程序.这是构建为Windows窗体应用程序,以防止控制台窗口显示:

public static voID Main(){    //(Snip...) Do some setup work    Process proc = new Process();    //(Snip...) Setup the process    proc.Start();    proc.WaitForExit();    //(Snip...) Do some housecleaning    NativeMethods.ExitwindowsEx(0,0);}

我真的很喜欢这个,因为任务栏中没有任何项目,而在alt选项卡中没有任何内容.但是为了做到这一点,我放弃了访问像void WndProc(ref Message m)这样的功能所以现在我听不到windows消息(像WTS_REMOTE_disCONNECT或WTS_SESSION_logoFF),没有一个句柄用于bool WTSRegisterSessionNotification(IntPtr hWnd,int dwFlags);我希望我的代码更强大,所以它如果用户在关闭程序之前注销或断开会话,则会进行清理.

任何关于我如何可以让我的蛋糕和吃它的推荐?

解决方法 您可以创建一个用于处理消息的隐藏窗口.
using System;using System.windows.Forms;namespace windowsApplication1{  class Program  {    [STAThread]    static voID Main(string[] args)    {      Application.Run(new MessageWindow());            }  }  class MessageWindow : Form  {    public MessageWindow()    {      this.ShowInTaskbar = false;      this.windowstate = Formwindowstate.Minimized;      // added by MusiGenesis 5/7/10:      this.FormborderStyle = FormborderStyle.FixedToolWindow;    }    protected overrIDe voID WndProc(ref Message m)    {      base.WndProc(ref m);    }  }}
总结

以上是内存溢出为你收集整理的c# – 如何使程序不会显示在Alt-Tab或任务栏中全部内容,希望文章能够帮你解决c# – 如何使程序不会显示在Alt-Tab或任务栏中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1259535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存