我有一个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());
}
}
Run Code Online (Sandbox Code Playgroud)
现在代码很简单,我们在程序启动主窗体之前为Program所谓的类设置一个静态变量,LaunchedViaStartup检查命令参数是否包含我们的特殊startup参数(通过Linq).这个论点的名称取决于你.
现在我们的主要形式(是基本的)我们可以在应用程序的生命周期内访问此属性.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
MessageBox.Show(this, string.Format("Lanched Via Startup Arg:{0}", Program.LaunchedViaStartup));
}
}
Run Code Online (Sandbox Code Playgroud)
最后要测试这个,你可以简单地打开Project Properties窗口并设置Command line arguments类似于下面的截图.

最后,为了测试visual studio之外的Startup参数,将启动参数添加到快捷方式,例如下面的屏幕截图.

| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |