2009-10-19 11 views
4

내 응용 프로그램에서는 Windows를 시작할 때 응용 프로그램을 시작할 수있는 옵션이 있습니다. 그건 잘된거야. 또한 최소화 할 경우 응용 프로그램이 시스템 트레이에 최소화되도록 작업 할 수도 있습니다. Windows와 동시에 시작할 때 자동으로 최소화 할 수있는 방법이 있습니까? 내가 생각할 수있는 유일한 방법은 시스템이 켜져있는 시간을 검색하고 그 데이터를 사용하여 기계가 최근에 시작되었는지 여부를 결정하는 것입니다. 분명히 그 이론에는 많은 결함이 있습니다. 다른 사람이 어떻게 할 수 있겠는가?C# - 시스템 시작시 최소화 트레이

답변

7

프로그램에서 트레이로 최소화되도록 명령 줄 스위치를 구현하십시오. Windows 시작 프로그램을 시작할 때 스위치 만 포함하면됩니다.

http://msdn.microsoft.com/en-us/library/acy3edy3.aspx

+1

많은 응용 프로그램이이를 성공적으로 수행합니다. MSN Messenger는'/ background' 스위치를 사용하여 동일한 효과를냅니다. – adrianbanks

1

명령 줄 인수를 사용하여, 예를 들어,/startminimised. 앱에서 앱이 시작될 때이 스위치가 있는지 (Environment.GetCommandLineArgs 사용) 확인하고 스위치가 있는지 자동으로 최소화합니다.

"시작시 실행"옵션에서 앱이이 스위치로 시작되었는지 확인하십시오. 예 : 실행 레지스트리 키 또는 시작 그룹 바로 가기를 myapp.exe /startminimised으로 설정하십시오.

그러나 사용자가 앱을 실행하면 스위치가 지정되지 않으므로 앱이 창으로 표시됩니다. WINDOWSTATE 변화에 양식 "속성"에서

3

는 "최소화", 또는 코드합니다 :

 //After this: 
    InitializeComponent(); 
    //Place this line: 
    WindowState = FormWindowState.Minimized; 

희망이 도움이!

+0

그런데 showintaskbar를 비활성화하려면 위의 코드 다음에 showintaskbar = false를 넣으면됩니다. – Arash

0

당신은 "-minimized"예를 들어, 매개 변수를 사용하여 프로그램을 호출 한 다음 프로그램에서 해당 매개 변수를 처리 할 수 ​​있습니다, 당신의 program.cs에서

매개 변수를 처리 한 다음 Form1에 해당 매개 변수를 전달합니다 : 당신이들 경우, 예를 들어

public Form1(string parameter) 
    { 
     InitializeComponent(); 
     SetStartup(); //This function will set your app in the registry to run on startup. I'll explain this function below. 
     MinimizeApp(parameter); 
    } 

, 내가 사용하는이 기능 :

당신의 Form1.cs를에서
 static void Main(string[] args) 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      if (args.Length != 0){ 
       Application.Run(new Form1(args[0])); 
      } 
      else 
      { 
       Application.Run(new Form1("normalState")); 
      } 
     } 

, 당신은 전달 된 매개 변수를 사용하여 함수를 호출 할 앱을 최소화 할 수 있습니다 최소화 된 매개 변수로 응용 프로그램을 시작한 다음 최소화 된 상태로 시작되고 작업 표시 줄에 알림 창이 나타나고 응용 프로그램이 시작되어 백그라운드에서 실행 중임을 알리는 거품이 표시됩니다.

public void MinimizeApp(string parameter) 
{ 
    if (parameter == "-minimized") 
    { 
     this.WindowState = FormWindowState.Minimized; 
     notifyIcon1.Visible = true; 
     notifyIcon1.BalloonTipText = "Program is started and running in the background..."; 
     notifyIcon1.ShowBalloonTip(500); 
     Hide(); 
    } 

} 

SetStartup 함수는 프로그램을 레지스트리에 저장하므로 시작시 실행됩니다. 당신이 당신의 컴퓨터를, 그것은 또한 다시 시작할 때 다음 최소화 시작됩니다 -minimized, 및 "/programs/app.exe C :"지금, 당신은 예를 들어, -minimized 매개 변수를 사용하여 프로그램을 시작할 때

private void SetStartup(){ 
    Microsoft.Win32.RegistryKey key; 
    key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); 
    key.SetValue(AppName, Application.ExecutablePath.ToString()); 
    string ApplicationPath = "\"" + Application.ExecutablePath.ToString() + "\" -minimized"; 
    key.SetValue("MyApplicationName", ApplicationPath); 
    key.Close(); 
} 

자동으로 최소화가 시작됩니다.

관련 문제