2012-07-28 32 views
0

如何通過使用命令行參數將應用程序最小化到系統托盤。如何使用命令行參數將應用程序最小化到托盤

例如:當我用這樣的命令行打開我的應用程序。 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()); 

     } 

但這個想法是行不通的。 是否有可能獲得表單的參數? 我需要在這裏寫什麼代碼?

+0

什麼ISN沒有工作?會發生什麼,以及會發生什麼? – 2012-07-28 15:31:25

+0

調試結果如何?放入一些斷點,是否使它既/如果語句? – Phil 2012-07-28 15:33:26

回答

0

Environment.CommandLine包含在命令行上傳遞的參數。
更好Environment.GetCommandLineArgs()返回一個字符串數組,類似於傳遞給main方法的字符串[] args,但第一個參數是可執行文件名。

不確定是否需要將代碼移到form_load事件或表單構造器中。

MSDN Refs

0

我建議傳遞一個布爾到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"))); 
} 
相關問題