Winform 单例模式 如果有相同的程序在运行 notifyIcon气泡提示 “程序正在运行,我在这儿”
2012-07-30 11:02
405 查看
如题 Winform 单例模式
如果用相同的程序在运行 notifyIcon系统托盘图标 气泡提示 “程序正在运行,我在这儿”
重点是 如何实现 : 当检测到有程序运行时 如何获取该窗口 并调用notifyIcon的气泡提示
用 windows API实现 或用 反射 只要能实现就行。。。
昵称: surfshark5 时间: 2010-06-20 20:50:01
其实不需要直接调用API,也不需要反射:)
C# code
C# code
如果用相同的程序在运行 notifyIcon系统托盘图标 气泡提示 “程序正在运行,我在这儿”
重点是 如何实现 : 当检测到有程序运行时 如何获取该窗口 并调用notifyIcon的气泡提示
用 windows API实现 或用 反射 只要能实现就行。。。
昵称: surfshark5 时间: 2010-06-20 20:50:01
其实不需要直接调用API,也不需要反射:)
C# code
// Program.cs // using System; using System.Threading; using System.Windows.Forms; static class Program { public static EventWaitHandle ProgramStarted; [STAThread] static void Main() { // 尝试创建一个命名事件 bool createNew; ProgramStarted = new EventWaitHandle(false, EventResetMode.AutoReset, "MyStartEvent", out createNew); // 如果该命名事件已经存在(存在有前一个运行实例),则发事件通知并退出 if (!createNew) { ProgramStarted.Set(); return; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
C# code
// Form1.cs // using System; using System.Windows.Forms; using System.Threading; public partial class Form1 : Form { NotifyIcon notifyIcon1 = new NotifyIcon(); public Form1() { //InitializeComponent(); this.notifyIcon1.Text = "Double click me to show window"; this.notifyIcon1.Icon = System.Drawing.SystemIcons.Information; this.notifyIcon1.DoubleClick += OnNotifyIconDoubleClicked; this.SizeChanged += OnSizeChanged; ThreadPool.RegisterWaitForSingleObject(Program.ProgramStarted, OnProgramStarted, null, -1, false); } // 当最小化时,放到系统托盘。 void OnSizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { this.notifyIcon1.Visible = true; this.Visible = false; } } // 当双击托盘图标时,恢复窗口显示 void OnNotifyIconDoubleClicked(object sender, EventArgs e) { this.Visible = true; this.notifyIcon1.Visible = false; this.WindowState = FormWindowState.Normal; } // 当收到第二个进程的通知时,显示气球消息 void OnProgramStarted(object state, bool timeout) { this.notifyIcon1.ShowBalloonTip(2000, "Hello", "I am here...", ToolTipIcon.Info); } } 文件出处:http://blog.csdn.net/binyao02123202/article/details/7208436
相关文章推荐
- Winform 单例模式 如果有相同的程序在运行 notifyIcon气泡提示 “程序正在运行,我在这儿”
- C#之使用NotifyIcon实现任务栏托盘菜单,图标闪烁效果及气泡提示 很多程序是只需要后台运行的,甚至不需要自己的应用界面。NotifyIcon提供了程序在任务栏的显示功能 程序下载链接如下
- win7上运行某程序的时候,如果这个程序需要以管理员的身份运行,那么就会有“用户帐户控制”的提示:“您想允许来自...发布者的以下程序对此计算机进行更改吗?”请问,win7如何知道哪些程序需要以管理员的身份运行?
- Mac OS X 下 Chrome 去掉第三方扩展提示“请停用以开发者模式运行的扩展程序”的方法
- 忽然想到的 —— 如果我们生活的世界是一个正在运行的程序
- 使用mysql的图形工具SQL-front时弹出提示:“程序注册时间到期 程序将被限制模式下运行”
- [转]关闭 Chrome 浏览器的启动时提示 - 请停用以开发者模式运行的扩展程序
- 安装SQL Server 2000时出现以下错误提示:“以前的某个程序安装已在安装计算机创建挂起的文件操作,运行安装程序之前必须重新启动计算机” 说明:如果重启计算机无法解决问题,可能有以下两个原因
- Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法
- VC++ win32 Application程序实现运行时,右下角任务栏,弹出气泡提示程序已开始运行
- : 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 ---> System.BadImageFormatException: 试图加载格式不正确的程序。
- .NET程序运行时,如果不用管理员权限,提示错误
- 在窗口中执行mysql命令时,如果提示:mysql不是内部或外部命令,也不是可运行的程序或批处理文件
- 如何完全屏蔽Chrome的提示:"请停用以开发者模式运行的扩展程序"
- CentOS提示"另一个目前运行的程序正在访问软件信息"
- VS2008 Debug模式下编译完程序运行时提示"没有找到MSVCR90D.dll..."的解决办法
- chrome提示:请停用以开发者模式运行的扩展程序的解决办法
- 移动硬盘分区变为RAW,chkdsk提示“因另一个程序正在使用这个卷,无法运行CHKDSK“ 的解决办法 .
- c# winform程序右下角显示气泡提示效果
- 屏蔽chrome提示:请停用以开发者模式运行的扩展程序