0

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

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

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

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());

        }

但这个想法行不通。是否有可能得到表单的参数?我需要在这里写什么代码?

4

3 回答 3

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")));
}
于 2012-07-28T15:37:49.747 回答
0

您将需要调用-tray参数。请参阅mozilla 支持命令行参数

于 2013-03-31T19:09:33.767 回答
0

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

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

MSDN 参考资料

于 2012-07-28T15:29:06.900 回答