C#の - システムの起動時にトレイに最小化
-
22-09-2019 - |
質問
私のアプリケーションでは、私は、Windowsの起動時にアプリケーションを起動するオプションがあります。それは素晴らしい作品。私はまた、最小場合、それはそのように、アプリケーションは、システムトレイに最小化されています。私は、Windowsと同時に起動するときに自動的に最小化されるかもしれないという方法はありますか?私は考えることができる唯一の方法は、彼らのシステムがにされていることを時間の量を取得し、マシンが最近始めたかどうかを決定するためにそのデータを使用することです。明らかに、その理論と傷がたくさんあります。誰もがこれを行うことができる方法として、他のアイデアがありますか?
解決
トレイに最小化するようにプログラムを引き起こし、あなたのプログラムのコマンドラインスイッチを実装します。あなたは、Windowsの起動時にプログラムを起動すると、ちょうどスイッチを含んます。
他のヒント
//After this:
InitializeComponent();
//Place this line:
WindowState = FormWindowState.Minimized;
・ホープこのヘルプ!
コマンドライン引数を使用して、例えば/ startminimised。このスイッチの存在のためのアプリのチェックではアプリが起動し(Environment.GetCommandLineArgs
を使用して)、およびスイッチが存在する場合、自動的に最小化します。
次に、あなたの「実行起動時に」オプションで、アプリは例えば、このスイッチで起動していることを確認myapp.exe /startminimised
にファイル名を指定して実行レジストリキーまたはスタートアップグループのショートカットを設定します。
ユーザーがアプリケーションを実行すると、しかし、彼らはしませんが(通常は!)、スイッチを指定します。
あなたは、たとえば、「-minimized」、パラメータを使用してプログラムを呼び出した後、あなたのプログラムでそのパラメータを処理することができます:
あなたのProgram.csでは、パラメータを処理し、その後、Form1に、そのパラメータを渡します:
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"));
}
}
あなたのForm1.csでは、あなたが渡されたパラメータで関数を呼び出すと、アプリケーションを最小限に抑えることができます:
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);
}
あなたは-minimizedパラメータを使用してアプリケーションを起動する場合は、たとえば、私が使用この機能で、それはnotifyiconはタスクバーやアプリがバックグラウンドで起動し、実行されていると言ってバブルにポップアップし、最小化を開始します。
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機能は、レジストリにプログラムを置きます。
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();
}
今、あなたはあなたのプログラムが-minimizedパラメータで起動したときに、例えば:「C:/programs/app.exe」それは最小限に抑え開始し、コンピュータを再起動すると、それはまた、自動的に最小化を開始-minimized。