C# Visual Studio - 你能创建一个独立于你的程序弹出并且不会阻止它完全关闭的通知/消息框吗?
C# Visual Studio - Can you create a notification / message box that pops up independently from your program and won't stop it from closing completely?
是否可以创建一个消息框或类似的东西,即使主应用程序完全关闭也会保留在屏幕上?
我有一种方法可以在检测到有可用更新时自动关闭我的程序。我想通知用户应用程序关闭的原因以及他们需要重新启动它。该程序在服务器上共享并由多人同时使用,因此为了更新它,我需要确保它没有被锁定打开或被其他人使用,但我希望通知保留在他们的屏幕上让他们知道发生了什么事。
我目前的解决方法是启动另一个应用程序,告诉他们发生了什么,但如果有更好的选择,那就太好了。
启动第二个进程是执行此操作的唯一方法:要终止程序,其中的任何内容都不能留下运行,例如任何对话框。
此外,通知用户有更新并且他们需要重新启动程序而不是在没有警告的情况下突然终止程序不是更好的用户体验吗?
理想情况下,同一可执行文件不会有多个用户 运行,但为了解决文件锁定问题,让程序在启动时创建一个虚拟文件,并在启动时删除该虚拟文件closing - 一旦不存在虚拟文件,更新就会运行。这是假设更新由单独的程序处理。
如果我绝对必须实现那种功能,就像 Program.cs
中的这样
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
CreateDummyFile();
Application.Run(new Form1());
DeleteDummyFile();
}
static void CreateDummyFile() {
String fileName = Application.StartupPath + @"\" + Environment.MachineName + ".tmp";
using (FileStream fs = File.Create(fileName)) { }
}
static void DeleteDummyFile() {
String fileName = Application.StartupPath + @"\" + Environment.MachineName + ".tmp";
File.Delete(fileName);
}
包括 System.IO
命名空间 - 这假定您使用的是 WinForms
是否可以创建一个消息框或类似的东西,即使主应用程序完全关闭也会保留在屏幕上?
我有一种方法可以在检测到有可用更新时自动关闭我的程序。我想通知用户应用程序关闭的原因以及他们需要重新启动它。该程序在服务器上共享并由多人同时使用,因此为了更新它,我需要确保它没有被锁定打开或被其他人使用,但我希望通知保留在他们的屏幕上让他们知道发生了什么事。
我目前的解决方法是启动另一个应用程序,告诉他们发生了什么,但如果有更好的选择,那就太好了。
启动第二个进程是执行此操作的唯一方法:要终止程序,其中的任何内容都不能留下运行,例如任何对话框。
此外,通知用户有更新并且他们需要重新启动程序而不是在没有警告的情况下突然终止程序不是更好的用户体验吗?
理想情况下,同一可执行文件不会有多个用户 运行,但为了解决文件锁定问题,让程序在启动时创建一个虚拟文件,并在启动时删除该虚拟文件closing - 一旦不存在虚拟文件,更新就会运行。这是假设更新由单独的程序处理。
如果我绝对必须实现那种功能,就像 Program.cs
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
CreateDummyFile();
Application.Run(new Form1());
DeleteDummyFile();
}
static void CreateDummyFile() {
String fileName = Application.StartupPath + @"\" + Environment.MachineName + ".tmp";
using (FileStream fs = File.Create(fileName)) { }
}
static void DeleteDummyFile() {
String fileName = Application.StartupPath + @"\" + Environment.MachineName + ".tmp";
File.Delete(fileName);
}
包括 System.IO
命名空间 - 这假定您使用的是 WinForms