Tag: system tray

如何在没有可见窗口的情况下启动.net Windows窗体应用程序?

我有一个.net Windows窗体应用程序,需要直接打开通知图标(系统托盘),没有可见的窗口。 我意识到我可以在onshown事件或类似的事情中做到这一点。 但如果我这样做,我会得到一个窗口的闪光。 我怎么能避免那个闪光灯? 我已经尝试修改我的Program.cs文件,如下所示: Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); MainForm frm = new MainForm(); frm.Visible = false; Application.Run(frm); 但是这不起作用,因为Application.Run()使表单可见。 我很确定我会错过一个简单的答案。 任何帮助是极大的赞赏。

从仅限系统托盘的应用程序创建工具提示

所以我试图在屏幕上的某个点创建一个工具提示。 ToolTip tip = new ToolTip(); tip.Show(“foobar”, **IWin32Window window**, new Point(100, 100)) 问题是我不知道在上面插入什么window参数。 我的应用程序完全从系统托盘中运行,并且没有其他GUI元素。 它叫做notifyIcon1 。 这是通过Form1创建的。 当插入tip.Show()时,这些值都不起作用。 如何仅使用系统托盘在屏幕上的任何位置生成工具提示? 谢谢。

更改系统托盘图标图像

我在.Net中构建了一个托盘应用程序,工作正常。 但是,用户希望在某些条件下在运行时更改“托盘图标”图像。 为了简单起见,让我们说,有些东西不起作用 – 托盘图标应该显示红色图像; 如果一切都很好,它应该显示绿色。 我不知道如何在.Net中实现这一目标。 请提供一些意见。 谢谢 我为Tray构建了CustomApplicationContent。 下面的一些片段: Program.cs中 [STAThread] static void Main() { if (!SingleInstance.Start()) { return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); try { var applicationContext = new CustomApplicationContext(); Application.Run(applicationContext); } catch (Exception ex) { MessageBox.Show(ex.Message, “Program Terminated Unexpectedly”, MessageBoxButtons.OK, MessageBoxIcon.Error); } SingleInstance.Stop(); } CustomApplicationContext.cs public class CustomApplicationContext : ApplicationContext { private System.ComponentModel.IContainer […]

以编程方式刷新系统托盘图标

我有一个有系统托盘图标的应用程序。 在卸载时,如果它正在运行,我将终止该进程。 因此,由于没有优雅地停止应用程序,图标仍保留在系统托盘中,只有当我们将鼠标hover在系统托盘上时才会删除。 我编写了一个代码,可以沿托盘运行光标并将光标放回原始位置。 这就是我所做的: [DllImport(“user32.dll”)] static extern IntPtr FindWindow(string className, string windowName); [DllImport(“user32.dll”)] static extern IntPtr FindWindowEx(IntPtr parent, IntPtr child, string className, string windowName); [DllImport(“user32.dll”)] static extern bool GetWindowRect(HandleRef handle, out RECT rct); [StructLayout(LayoutKind.Sequential)] struct RECT { public int Left; public int Top; public int Right; public int Bottom; } void RefreshTray() { IntPtr […]

最大化系统托盘中的应用程序?

我写了一个小的WPF应用程序,当’关闭’时最小化到系统托盘(客户要求)。 双击弹出它,或右键单击提供上下文菜单退出。 但是如果应用程序被最小化,并且用户导航到开始 – >所有程序 – >应用程序,它将启动一个新实例。 如果用户执行此操作而不是启动新实例,我需要做什么(在C#中)才能使应用程序最大化正在运行的实例? 谢谢!

使用WPF最小化/关闭应用程序到系统托盘

我想在用户最小化或关闭表单时在系统托盘中添加应用程序。 我已经为最小化案例做了这件事。 任何人都可以告诉我,当我关闭表单时,如何保持我的应用程序运行并将其添加到系统托盘中? public MainWindow() { InitializeComponent(); System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon(); ni.Icon = new System.Drawing.Icon(Helper.GetImagePath(“appIcon.ico”)); ni.Visible = true; ni.DoubleClick += delegate(object sender, EventArgs args) { this.Show(); this.WindowState = System.Windows.WindowState.Normal; }; SetTheme(); } protected override void OnStateChanged(EventArgs e) { if (WindowState == System.Windows.WindowState.Minimized) this.Hide(); base.OnStateChanged(e); }

开发一个简单的Windows系统托盘桌面应用程序来使用.NET Web服务

我需要开发一个简单的Windows系统托盘桌面应用程序来使用.NET Web服务,但我精通PHP,而且我在桌面应用程序方面几乎没有背景。 您建议我使用什么平台,最好是学习曲线非常低? 系统托盘应用程序将显示(在上下文菜单中)从.NET Web服务收到的新事件通知的计数器; 并将所有事件日志写入文本文件。 我已经在考虑使用Adobe AIR或C#.NET,但我想知道是否有更好的选项,我可以快速学习开发应用程序。

单击按钮时应用程序是否最小化到系统托盘?

如何让我的应用程序最小化到WindowsXP / Vista中的系统托盘? 当鼠标hover在图标上时,我也在寻找一种方法来显示消息。 弹出气球可以有两条线吗?

带有c#控制台应用程序的系统托盘图标将不显示菜单

我有一个小的C#(.NET 4.0)控制台应用程序,我希望用户能够通过右键单击系统托盘图标时显示菜单来进行交互。 我可以毫无问题地在托盘上添加一个图标,但我无法显示菜单。 我正在使用以下代码: NotifyIcon trayIcon = new NotifyIcon(); trayIcon.Text = “TestApp”; trayIcon.Icon = new Icon(SystemIcons.Application, 40, 40); ContextMenu trayMenu = new ContextMenu(); trayMenu.MenuItems.Add(“Blah”, item1_Click); trayMenu.MenuItems.Add(“Blah2”, item1_Click); trayMenu.MenuItems.Add(“Blah3”, item1_Click); trayIcon.ContextMenu = trayMenu; trayIcon.Visible = true; …将图标放入托盘中。 但是,右键单击该图标不会执行任何操作。 我尝试了MenuItems.Add各种排列,但没有任何东西会使菜单出现。 我确定我错过了一些简单的东西 – 任何想法是什么?

C#关闭时最小化到系统托盘

嗨在我的c#应用程序中,当表单关闭时,我正在尝试最小化应用程序到系统托盘。 这是我试过的代码。 public void MinimizeToTray() { try { notifyIcon1.BalloonTipTitle = “Sample text”; notifyIcon1.BalloonTipText = “Form is minimized”; if (FormWindowState.Minimized == this.WindowState) { notifyIcon1.Visible = true; notifyIcon1.ShowBalloonTip(500); this.Hide(); } else if (FormWindowState.Normal == this.WindowState) { notifyIcon1.Visible = false; } } catch(Exception ex) { MessageBox.Show(ex.Message); } } 我正在调用形成结束事件的方法。 但问题是它不能最小化到托盘。 它只是关闭表格。