我有一个C#WinForm应用程序。目前,它是通过桌面快捷方式运行的。但是我想在系统启动时添加它。用户可以决定是否在启动时运行。
如果它在系统启动时运行,我想将其最小化在系统托盘上,否则它将在任务栏上运行。
有什么方法可以检查它是否在启动时启动?
您的应用程序将无法(单独)检测它是在启动时还是在正常用户启动时启动的。但是,您可以传递arguments
到您的应用程序,然后让您的应用程序正确响应。这是一个基本的例子
首先启动program.cs
main
方法。现在默认情况下,您看不到传入的启动参数。但是,将参数添加string[] args
到main()
方法中将公开命令参数。如
static class Program
{
public static bool LaunchedViaStartup { get; set; }
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Program.LaunchedViaStartup = args != null && args.Any(arg => arg.Equals("startup", StringComparison.CurrentCultureIgnoreCase));
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
现在的代码很简单,我们为Program
调用的类设置一个静态变量,LaunchedViaStartup
然后在程序启动主窗体之前检查命令参数是否包含特殊startup
参数(通过Linq)。该参数的名称完全由您决定。
现在,以我们的主要形式(是的,是基本形式),我们可以在应用程序的生命周期内访问此属性。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MessageBox.Show(this, string.Format("Lanched Via Startup Arg:{0}", Program.LaunchedViaStartup));
}
}
最后,要进行测试,您可以简单地打开“项目属性”窗口,并设置Command line arguments
与下面的屏幕截图类似的屏幕快照。
最后,要在Visual Studio外部测试Startup参数,请将启动参数添加到您的快捷方式中,如下面的屏幕截图所示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句