如何使用命令行参数最小化对托盘的应用程序

时间:2012-07-28 15:25:39

标签: c#

如何使用命令行参数最小化应用程序到系统托盘。

例如:当我使用这样的命令行打开我的应用程序时。 c:\ myfile.exe totray

我为此写了一些代码,但它从未奏效。

static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (args.Length >0)
            {
                MessageBox.Show(args[0]);
            }
            Application.Run(new Form1());

        }

这里的消息框显示我的参数“totray”。 所以我只是添加了像

这样的代码
static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            if (args.Length >0)
            {
               // MessageBox.Show(args[0]);
                if (args[0] == "totray") {
                    Form1 frm1 = new Form1();
                    frm1.Hide();
                }
            }
            Application.Run(new Form1());

        }

但这个想法不起作用。 是否有可能获得表格的参数? 我需要在这里写什么代码?

3 个答案:

答案 0 :(得分:0)

Environment.CommandLine包含在命令行上传递的参数 更好的Environment.GetCommandLineArgs()返回一个字符串数组,就像传递给main方法的字符串[] args一样,但第一个参数是可执行文件名。

不确定是否需要将代码移动到form_load事件或表单构造函数中。

MSDN Refs

答案 1 :(得分:0)

我建议将bool传递给Form构造函数,然后根据它决定是否最小化。

将此构造函数添加到Form1

public Form1(bool minimize) : this()
{
    if (minimize)
    {
        this.WindowState = FormWindowState.Minimized;
    }
}

然后你可以像Main这样叫它:

static void Main(string[] args)
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1(args.Contains("totray")));
}

答案 2 :(得分:0)

您需要拨打-tray parameter.see mozilla support command line parameter